Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zmiana kodowania w konsoli?

Ostatnio zmodyfikowano 2016-04-05 19:02
Autor Wiadomość
Wasp3r
Temat założony przez niniejszego użytkownika
Zmiana kodowania w konsoli?
» 2016-04-04 14:01:49
Witam,

Napisałem program w C++, w którym zapisuję tekst wprowadzany przez użytkownika do pliku txt. Programik jest prosty, ale mem problem z kodowaniem. Na moim komputerze wszystko chodzi w porządku. Konsola wyświetla niepoprawne znaki, ale do pliku już zapisują się polskie, więc jest git. Na komputerze obok wyświetlają się polskie w konsoli, a zapisują niepoprawne. Żeby program działał na każdym komputerze musiałbym zmienić chyba domyślne kodowanie znaków w konsoli. Nie zależy mi na tym, żeby konsola wyświetlała polskie znaki, ważny jest plik.

Jak można rozwiązać ten problem?

Pozdrawiam :)
P-146968
carlosmay
» 2016-04-04 15:45:48
Jak można rozwiązać ten problem?
Jakie zmienne przechowują tekst?
P-146969
jankowalski25
» 2016-04-04 20:25:57
Jakie zmienne przechowują tekst?
Zazwyczaj to nie ma większego znaczenia. Ważniejsze są wartości odpowiadające poszczególnym znakom. Sprawdź, jakie są kody znaków w konsoli, a jakie w pliku i wykonaj odpowiednią konwersję. Jeśli chciałbyś przechowywać dane w pliku XML, to w bibliotece » DokumentacjaRapidXML możesz użyć odwołań znakowych. Przykład znajduje się w » RapidXML » rapidxmlparse_no_entity_translation.
P-146980
Wasp3r
Temat założony przez niniejszego użytkownika
» 2016-04-05 08:54:48
Wszystkie teksty mam w zwykłych stringach.
Czyli najlepszą opcją będzie przeszukanie pliku po zakończeniu wprowadzania danych i zastąpienia niepoprawnych symboli poprawnymi?
Zaskakujące jest, że do pliku wchodzą polskie znaki, które wymusiłem przez kompilator, ale te wprowadzenie ze zmiennych wczytują się... różnie.
Tak na prawdę program zaczął działać poprawnie po skompilowaniu w DEVie, bo w CodeBlocks właśnie świrował ze znakami. Raz wczytywał poprawnie te z kodu, raz te ze zmiennych.
P-146988
j23
» 2016-04-05 19:02:48
Domyślne kodowanie konsoli to CP852, więc żeby wszystko się wyświetlało poprawnie, Twój program także musi pracować w takim kodowaniu, włącznie z tekstem zapisanymi w pliku.

Inna opcja to unikod.

P-146995
« 1 »
  Strona 1 z 1