Konstanten für UTF-16LE und UTF-16BE?
-
Hallo Forum,
ich suche nach Konstanten für diese 2 Kodierungen UTF-16LE und UTF-16BE,
ich möchte diese in der Funktion MultiByteToWideChar(..); verwenden!?
Diese erwartet als ersten Parameter die Codepage der Datei!Beispiel, wenn es eine UTF-8 codierung ist, dann kann ich als ersten Parameter
CP_UTF8 nehmen, da der in der WinNls.h als:#define CP_UTF8 65001 // UTF-8 translation // für die Funktion dann: MultiByteToWideChar(CP_UTF8,...);definiert ist, leider kann ich nichts für andere codierungen finden!
besten dank
pixel
-
AFAIK gibt es dies nicht. Die Werte sind zwar 1200 (UTF-16LE) und 1201 (UTF-16BE), aber es wird nicht unterstützt...
Die Convertierung ist aber Simpel: Drehe einfach immer zwei Bytes rum.
-
Hallo,
viellen Dank für den Hinweis, aber wo hast du die Werte her?
Und wie meinst jetzt das mit umdrehen?
Ich lese die Datei ein lokal oder aus dem Internet,
hmm, sprichst du jetzt nur von den ersten zwei bytes der Datei?lg
pixel
-
Hallo,
Hab gerade die zwei getestet 1200 und 1201, MultiByteToWideChar(); liefert mir leeren string zurück
ich werd wohl darauf verzichten müssen, bzw. prüfen ob der nichts zurückgeliefert wurde und dann einen standard wert nehmen, ich denke CP_UTF8!
pixel
P.S. fällt mir noch ein, wieso kann es firefox richtig anzeigen, oder ie?

-
Was hast Du eigentlich vor????
Du willst eine Datei lesen und einfach mal so kucken ob es Unicode ist (?=> IsTextUnicode)???
Oder hat die Datei einen BOM?
Mit umdrehen meine ich, dass Du die beiden Bytes in dem Datentyp "wchar_t" umdrehen sollst; und das für jedes Zeichen. Dann hast Du aus LE => BE gemacht, bzw. umgekehrt.
-
Hallo,
jetzt etwas genauer, ich möchte abschnitte von html Dateien anzeigen, nicht im Browser sondern
in listctrl, das funktioniert auch ok bis auf bestimmte Codierungen, da wird halt nicht richtig angezeigt.Ich hab Möglichkeiten um zu ermitteln welche charsets verwendet werden, aber dann kommt das was Du schon vorher gesagt hast, nicht alle werden unterstützt!
Wie kann ich wissen ob die Datei einen BOM hat?