• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed c++ | Kodowanie pliku | polskie znaki

Object Storage Arubacloud
0 głosów
438 wizyt
pytanie zadane 11 maja 2020 w C i C++ przez Majster6918 Gaduła (4,030 p.)
zamknięte 15 maja 2020 przez Majster6918

Hejo 

Mam program w c++ na directx 9, jako środowiska graficznego używam ImGui i używam kodowania znaków jako 65001 bez podpisu, w programie mam normalnie Polskie znaki, lecz elementy typu "nazwy plików" komunikaty MessageBox, powiadomienia balonowe nie mają Polskich znaków, a chciałbym ich użyć w tych funkcjach. 

 

Polskich znaków nie z racji że plik nie jest kodowany jako 1250, tylko jest 65001 bez podpisu...

 

komentarz zamknięcia: Em działa :D

1 odpowiedź

0 głosów
odpowiedź 11 maja 2020 przez j23 Mędrzec (194,920 p.)
Zapisz pliki w kodowaniu 65001 (utf-8) z BOM-em i problem powinien zniknąć.
komentarz 11 maja 2020 przez Majster6918 Gaduła (4,030 p.)
gdy robie z boomem, to nie Polskich znaków w aplikacji a na powiadomieniach są
komentarz 12 maja 2020 przez j23 Mędrzec (194,920 p.)

Pewnie pozostała część aplikacji oczekuje łańcuchów znakowych w kodowaniu utf-8. Bez BOM-u kompilator literały tekstowe dawał dokładnie tak, jak były w pliku, bo założył, że kodowanie plików jest takie samo jak systemowe, dlatego funkcje WinAPI nie wyświetlały poprawnie. Z BOM-em wszystkie literały domyślnie konwertowane są do kodowania systemowego (Windows-1250 w PL).

Rozwiązaniem na szybko jest dodawanie do literałów prefiksu u8:

const char* text = u8"Jakiś tekst, który ma być w kodowaniu utf-8."

Aczkolwiek powinieneś IMO wszystko pisać w unikodzie (włącznie z WinAPI).

komentarz 15 maja 2020 przez Majster6918 Gaduła (4,030 p.)
Dzięki za próby lecz sam już tak próbowałem i to nie działa, nie wiem czy to wina ImGui czy jak...

Nie chce zmieniać środowiska graficznego z względu takiego że edytowałem ten kod, polepszałem go itd długi czas
komentarz 15 maja 2020 przez j23 Mędrzec (194,920 p.)

To u8 będzie działać, jeśli plik będzie zapisany z BOM-em. Ewidentnie coś nie tak robisz, bo to nie jest jakiś duży problem.

Jaki kompilator, MinGW?

komentarz 15 maja 2020 przez Majster6918 Gaduła (4,030 p.)
Naprawione :D
komentarz 15 maja 2020 przez j23 Mędrzec (194,920 p.)
Co zrobiłeś?
komentarz 15 maja 2020 przez Majster6918 Gaduła (4,030 p.)
Jak 'poprawiałem' kod ImGui itd to zrobiłem mały błąd, czyli wychodzi że to moja wina :D

Podobne pytania

0 głosów
0 odpowiedzi 354 wizyt
0 głosów
1 odpowiedź 374 wizyt
pytanie zadane 8 kwietnia 2022 w JavaScript przez Riddick Bywalec (2,600 p.)
0 głosów
2 odpowiedzi 1,089 wizyt
pytanie zadane 22 marca 2021 w C# przez disaster Bywalec (2,120 p.)

92,536 zapytań

141,377 odpowiedzi

319,452 komentarzy

61,920 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...