Zmiana kodowania w konsoli?
Ostatnio zmodyfikowano 2016-04-05 19:02
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 :) |
|
carlosmay |
» 2016-04-04 15:45:48 Jak można rozwiązać ten problem? |
Jakie zmienne przechowują tekst? |
|
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 RapidXML możesz użyć odwołań znakowych. Przykład znajduje się w parse_no_entity_translation. |
|
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. |
|
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.
|
|
« 1 » |