Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Rentetan UTF-8 dengan betul kepada ISO-8859-1 dalam C#?

Bagaimana untuk Menukar Rentetan UTF-8 dengan betul kepada ISO-8859-1 dalam C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-08 14:34:40298semak imbas

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

Menukar Rentetan UTF-8 dengan betul kepada ISO-8859-1 dalam C#

Menukar rentetan UTF-8 secara langsung kepada ISO-8859-1 boleh menyebabkan kehilangan data atau hasil yang salah. Kuncinya ialah mengendalikan perwakilan tatasusunan bait rentetan dengan betul. Kesilapan biasa ialah salah menyahkod UTF-8 bait menggunakan pengekodan ISO-8859-1.

Penyelesaian melibatkan proses dua langkah: mula-mula menukar tatasusunan bait UTF-8 kepada tatasusunan bait ISO-8859-1, kemudian menyahkod tatasusunan bait itu menggunakan pengekodan ISO-8859-1. Ini mengelakkan salah tafsir bait.

Berikut ialah kod C# yang diperbetulkan:

<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>

Pendekatan ini menggunakan Encoding.Convert untuk melakukan penukaran bait demi bait yang betul, memastikan rentetan yang terhasil menggambarkan dengan tepat data asal dalam had pengekodan ISO-8859-1 (yang hanya menyokong subset aksara yang ada. dalam UTF-8). Ingat bahawa aksara yang tidak boleh diwakili dalam ISO-8859-1 akan hilang atau diganti semasa penukaran ini.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan UTF-8 dengan betul kepada ISO-8859-1 dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn