• 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

Aruba Cloud - Virtual Private Server VPS
0 głosów
705 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 (195,240 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 (195,240 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 (195,240 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 (195,240 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 611 wizyt
0 głosów
1 odpowiedź 543 wizyt
pytanie zadane 8 kwietnia 2022 w JavaScript przez Vxid Functixn Bywalec (2,720 p.)
0 głosów
2 odpowiedzi 1,351 wizyt
pytanie zadane 22 marca 2021 w C# przez disaster Bywalec (2,120 p.)

93,324 zapytań

142,323 odpowiedzi

322,390 komentarzy

62,654 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...