Heim >Backend-Entwicklung >C++ >Wie konvertiert man einen UTF-8-String in C# korrekt in ISO-8859-1?
UTF-8-Zeichenfolgen korrekt in ISO-8859-1 in C# konvertieren
Die direkte Konvertierung einer UTF-8-Zeichenfolge in ISO-8859-1 kann zu Datenverlust oder falschen Ergebnissen führen. Der Schlüssel liegt darin, die Byte-Array-Darstellung der Zeichenfolge korrekt zu verarbeiten. Ein häufiger Fehler besteht darin, die UTF-8-Bytes falsch mit der ISO-8859-1-Kodierung zu dekodieren.
Die Lösung umfasst einen zweistufigen Prozess: Zuerst wird das UTF-8-Byte-Array in ein ISO-8859-1-Byte-Array konvertiert und dann dieses Byte-Array mithilfe der ISO-8859-1-Kodierung dekodiert. Dadurch wird eine Fehlinterpretation der Bytes vermieden.
Hier ist der korrigierte C#-Code:
<code class="language-csharp">Encoding iso = Encoding.GetEncoding("ISO-8859-1"); Encoding utf8 = Encoding.UTF8; byte[] utfBytes = utf8.GetBytes(Message); byte[] isoBytes = Encoding.Convert(utf8, iso, utfBytes); string msg = iso.GetString(isoBytes);</code>
Dieser Ansatz verwendet Encoding.Convert
, um eine ordnungsgemäße Byte-für-Byte-Konvertierung durchzuführen und sicherzustellen, dass die resultierende Zeichenfolge die Originaldaten innerhalb der Einschränkungen der ISO-8859-1-Kodierung (die nur eine Teilmenge der vorhandenen Zeichen unterstützt) genau widerspiegelt in UTF-8). Denken Sie daran, dass Zeichen, die in ISO-8859-1 nicht darstellbar sind, bei dieser Konvertierung verloren gehen oder ersetzt werden.
Das obige ist der detaillierte Inhalt vonWie konvertiert man einen UTF-8-String in C# korrekt in ISO-8859-1?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!