Ansi2UTF8 mit den MBTWC und WCTMB klappt nicht.
-
Hi an alle,
ich habe ein char array welches ich in UTF8 umwandeln möchte.
char szMessage[2048]; //nur zu testwzecken:D strcpy(szMessage, "ääüüöö"); WCHAR wszMsg[2048]; //Zu Unicode umwandeln int iRes = MultiByteToWideChar(CP_UTF8, 0, szMessage, -1, wszMsg, sizeof(wszMsg)/sizeof(WCHAR)); iRes = WideCharToMultiByte(CP_ACP, 0, wszMsg, -1, szMessage, iRes, 0, 0);Ergebnis ist dann ??????

Was mache ich den nun falsch?
Habe auch bereits probiert bei MBTWC CP_ACP zu nutzen und bei WCTMB CP_UTF8
sowie in beiden CP_UTF8, aber alles bringt mir nicht das gewünschte Ergebnis.Habe aus einigen Tutorien erfahren, dass es so funktionieren müsste.
Also das Projekt läuft unter MSVS 2008 ohne UnicodeStandard.
Ich weiß, bevor ihr alle meckert, dies musste ich so machen da sonst nicht
mit einer unserer GUI Klassen zusammengearbeitet werden kann.Gruß
Karsten
-
CA2W? CT2W?
Versuchs mal damit, die Forensuche hätte dir auch geholfen
-
Wie soll mir den CA2W helfen einen UTF8 kodierten string zu bekommen???
-
Probier mal
MultiByteToWideChar(CP_ACP,...
WideCharToMultiByte(CP_UTF8,...
-
Das hab ich wie oben erwähnt bereits probiert. Bringt auch nicht das gewünschte Ergebnis.
Als Ergebnis kommt dieses bei rum
(««««««««þîþîþîþ
-
Was erwartest du?
Für 'ä' bekomm ich
Hex: C3 A4Laut http://www.utf8-zeichentabelle.de/ stimmt das auch.
Edit: Im VS Debugger kann ich nur UTF-16 und ASCII sehen. UTF-8 wird dann zu irgendeinem Datensalat.
-
Ok auf die Hex Werte hatte ich jetzt nicht geachtet.
Na das wusste ich nicht das UTF 8 im Debugger nur so dargestellt wird.
Dann scheint es ja doch korrekt zu sein.
-
Im Debugger einfach den Formatspecifier s8 verwenden und Du siehst es richtig.
-
Entschuldigung, wenn ich mich hier einklinke, aber ich brauche ja noch UTF-8 im Visual Studio 6.0
Und ebenso:CrazyPlaya schrieb:
Ich weiß, bevor ihr alle meckert, dies musste ich so machen
Übersetzen lässt sich der Code da oben bei mir, aber ich sehe kein Ergebnis...
Funktioniert das in Visual C++ 6.0 nicht?
-
isabeau schrieb:
Funktioniert das in Visual C++ 6.0 nicht?
Das ist eine Win32 API Funktion, dass hat nix mit VC zu tun.
-
Danke, dann muss es bei mir auch funktionieren. Ich habe nur so doof gefragt, weil ich auf den ersten Blick ebenfalls kein vernünftiges Ergebnis gesehen habe.
-
Was Dein Debugger anzeigt ist was anderes.