Ich habe zu diesem Thema gegoogelt und mir jede Antwort angesehen, aber ich verstehe sie immer noch nicht.
Grundsätzlich muss ich eine UTF-8-Zeichenfolge in ISO-8859-1 konvertieren und dies mit folgendem Code tun:
Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
string msg = iso.GetString(utf8.GetBytes(Message));
Meine Quellzeichenfolge ist
Message = "ÄäÖöÕõÜü"
Aber leider wird meine Ergebniszeichenfolge
msg = "�ä�ö�õ�ü
Was mache ich hier falsch?
Encoding.Unicode
und in der Win32-API falsch angewendet . Unicode ist ein Zeichensatz, keine Codierung. UTF-16 ist eine von mehreren Codierungen für Unicode.)
Message
es von UTF-8 dekodiert wurde. Vorausgesetzt, dieser Teil hat korrekt funktioniert, ist die Konvertierung in Latin-1 so einfach wie byte[] bytes = Encoding.GetEncoding("ISO-8859-1").GetBytes(Message)
. Dann können Sie, wie StuS sagt, die Latin-1-Bytes mitEncoding.GetEncoding("ISO-8859-1").GetString(bytes)