UNICODE-String in ANSI-String umwandeln...?
-
Hallo Progger
,Wie wandle ich einen UNICODE-String in einen ANSI-String um ?
Ich bin mir ziemlich sicher, dass ich die Funktion WideCharToMultiByte verwenden muss, das Problem ist nur,
dass ich nicht genau weiß, welche Parameter ich verwenden muss
. Mein Problem ist weiterhin, das
mein Quell-String im Format UTF16, UTF16BE oder UTF8 vorliegt (weiß aber welches davon nun zutrifft). Wie kann
ich das machen ? Könnt ihr mir da vllt. mal n kleinen Code-Schnipsel zeigen ? Wäre echt nett von euch!Liebe GrÜßE und danke schonmal
Tim
-
Hast du dir schon das Beispiel in der MSDN-Library angeschaut: http://msdn.microsoft.com/library/en-us/netmgmt/netmgmt/looking_up_a_users_full_name.asp
Zum Format: Du meintest, weiß nicht welches davon nun zutrifft, oder?!
-
Hi, danke für dein Reply!
Das Beispiel werd ich mir angucken.
Doch ich weiß, welches ich vorliegen hab. Aber in der MSDN zur oben
genannten Funktion steht ja:CodePage
Specifies the code page to be used to perform the conversion. This parameter can be given the value of any code page that is installed or available in the system. You can also specify one of the following values: Value Meaning
CP_ACP ANSI code page
CP_MACCP Macintosh code page
CP_OEMCP OEM code page
CP_SYMBOL Symbol code page (42)
CP_THREAD_ACP The current thread's ANSI code page
CP_UTF7 Translate using UTF-7
CP_UTF8 Translate using UTF-8Da steht aber nichts von UTF16, UTF16BE oder UTF8
.
Was muss ich da nehmen ?
-
UTF-16LE is CP:1200 - nimm die feste zahl oder mach ein eigenes define anstatt den CP_UTF8 usw
-
Mr Evil schrieb:
UTF-16LE is CP:1200 - nimm die feste zahl oder mach ein eigenes define anstatt den CP_UTF8 usw
Sorry versteh deine Antwort nicht
... Könnteste das noch n bissl erläutern... ? Bitte 
Also wenn ich einen UNICODE-String habe:
#define UNICODE #include <windows.h> TCHAR szBuffer[] = TEXT("Hallo");Der -mal angenommen- im Format UTF16BE vorliegt (Das weiß ich vorher).
Wie kann ich den jetzt in einen ANSI-C-String konvertieren ?
-
Ich nehme mal an, Mr Evil meinte so wie im Beispielcode nur eben statt z.B. CP_UTF8 direkt die Zahl 1200 einsetzen (bzw. dir dafür ein define anlegen, wenn du es als Zahl unschön findest)
-
Was ist den der Unterschied zwischen:
- CP_UTF7
- CP_UTF8
bzw:
- UTF16
- UTF16BEUnd was muss ich beim konvertieren beachten ?
Danke nochmal/schonmal an alle
Echt n super Forum hier 
-
-
flenders schrieb:
Ich nehme mal an, Mr Evil meinte so wie im Beispielcode nur eben statt z.B. CP_UTF8 direkt die Zahl 1200 einsetzen (bzw. dir dafür ein define anlegen, wenn du es als Zahl unschön findest)
WideCharToMultiByte( 1200, ... )
behandelt den inhalt als UTF16an dieser stelle aber schwachsinn, WideCharToMultiByte convertiert nach unicode, aber UTF-16 ist bereits unicode, entsprechend macht diese funktion ggf muell aus den strings
als beispiel - du willst strings nach einer neuen codepage umcoden:
quelle = utf-8
WideCharToMultiByte( CP_UTF8, ... )
MultiByteToWideChar( CP_TARGET, ... )quelle = utf-16
MultiByteToWideChar( CP_TARGET, ... )