ŁF napisał(a)
co to jest podwójne kodowanie? w jakiej stronie kodowej masz zapisane te polskie literki? 852? w1250? utf-8? utf-16?
dlaczego MessageBoxW, a nie MessageBoxA (czyli MessageBox)? rozumiesz różnicę pomiędzy funkcjami winapi *W i *A?
Jak bym się gdzieś pomylił to proszę mnie poprawić .
W "podwójnym kodowaniu" każdy znak jest zapisany na dwóch bajtach( dzięki temu mamy tyle kombinacji, że spokojnie można zmieścić wszystkie znaki ze wszystkich języków nie korzystając ze stron kodowych, czyli np. w jednym pliku mogą współistnieć ogonki, cyrylica i chińskie znaki).
Plik file1.txt był zapisany w zwykłym notepadzie, gdzie są cztery kodowania do wyboru - ANSI, UTF-8, UNICODE ,UNICODE BIG ENDIAN . ( próbowałem zapisać na 4 sposoby i za każdym razem wyskakiwały inne znaki, ale nigdy te o które mi chodziło).
MessageBoxW korzysta z UNICODE, a MessageBoxA z ANSI .
Funkcje z A wewnętrznie dokonują konwersji do wide charów i wywołują funkcję z W. Funkcje W są więc szybsze, lepsze i w ogóle zalecane.
Źródło: "Windows via C++" Richter Nasarre.
Osobiście nie wiem dlaczego program nie koduje poprawnie polskich znaków, nie mam pojęcia co może być źle. Byłbym wdzięczny gdyby ktoś to wytłumaczył :)