Heim > Backend-Entwicklung > C++ > Wie konvertiert man UTF-8 in C# korrekt in ISO-8859-1?

Wie konvertiert man UTF-8 in C# korrekt in ISO-8859-1?

Patricia Arquette
Freigeben: 2025-01-08 14:11:46
Original
353 Leute haben es durchsucht

How to Correctly Convert UTF-8 to ISO-8859-1 in C#?

Lösung des UTF-8-zu-ISO-8859-1-Konvertierungsproblems in C#

Beim Konvertieren von UTF-8-Zeichenfolgen in ISO-8859-1 können bei unsachgemäßer Handhabung Ergebnisfehler auftreten. Lassen Sie uns das Problem analysieren und eine Lösung anbieten.

Code und Fragen

Der von Ihnen bereitgestellte Codeausschnitt versucht, UTF-8 mit Encoding.GetString und Encoding.GetBytes in ISO-8859-1 zu konvertieren. Für diese spezielle Konvertierung sind jedoch zusätzliche Schritte erforderlich.

Lösung: Verwenden Sie Encoding.Convert

Um das Byte-Array vor der Dekodierung ordnungsgemäß an die Zielkodierung anzupassen, sollte Encoding.Convert verwendet werden. Das Folgende ist der geänderte 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>
Nach dem Login kopieren

Erklärung

Encoding.GetEncodingRuft den Encoder und Decoder für eine bestimmte Zeichenkodierung ab. Encoding.GetBytesKodieren Sie die UTF-8-Quellzeichenfolge in ein Byte-Array. Das direkte Dekodieren dieses Byte-Arrays mit Encoding.GetString erzeugt jedoch nicht die gewünschte ISO-8859-1-Zeichenfolge.

Encoding.ConvertPassen Sie das Byte-Array an die Zielkodierung an. In diesem Fall werden die Bytes so konvertiert, dass sie der ISO-8859-1-Kodierung entsprechen. Das angepasste Byte-Array kann dann in einen korrekten ISO-8859-1-String dekodiert werden. Encoding.GetString

Ergebnisse

Nachdem Sie diese Änderung angewendet haben, wird Ihre resultierende Zeichenfolge korrekt in ISO-8859-1 konvertiert und ist nicht verstümmelt.

Das obige ist der detaillierte Inhalt vonWie konvertiert man UTF-8 in C# korrekt in ISO-8859-1?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage