Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Rentetan UTF-8 dengan betul kepada ISO-8859-1 dalam 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!