Kodowanie znaków w konsoli

Kodowanie znaków w konsoli
NI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Piszę program, który będzie działał pod Windowsem i Linuksem w c++, w użyciem kompilatora minGW. Z tego powodu chciałem zrobić funkcję wykrywającą kodowanie danej konsoli i konwertowanie tekstu by polskie znaki wyświetlały się poprawnie / nie wyświetlały ogonków.

Pod Windowsem znalazłem bibliotekę locale, która umożliwia wykrycie i zmianę kodowania, ale działa ona tylko wraz z Visual-c++. Zna ktoś może alternatywę na minGW?

NI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Z podanego linku wyłuskałem najlepsze dla mnie rozwiązanie, czyli setlocale(LC_ALL, "Polish");, ale niestety pod cygwinem nadal lecą krzaki.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

ja myślę, że "funkcja wykrywająca" nie jest potrzebna, że wystarczy jakiś

Kopiuj
#ifdef WIN32

jeśli już będziesz mieć dwa rozwiązania działające w różnych systemach.

NI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0
Azarien napisał(a):

ja myślę, że "funkcja wykrywająca" nie jest potrzebna, że wystarczy jakiś

Kopiuj
#ifdef WIN32

jeśli już będziesz mieć dwa rozwiązania działające w różnych systemach.

No tak, miałem na myśli makra. Tak na szybko zrobiłem test jak to wygląda z tym cygwinem, ale on identyfikuje się jako windows.

Kopiuj
 #ifdef WIN32
#define SYS 1
#else
#define SYS 2
#endif

user image

1 przed "test" to to czego szukamy, reszta to śmieci. Przepraszam, że nie skasowałem.

Muszę postawić jakąś maszynę wirtualną do szybkich testów.

BTW Dlaczego obrazy się nie wstawiają?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.