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

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

Patricia Arquette
Patricia Arquetteasal
2025-01-08 14:11:46354semak imbas

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

Menyelesaikan masalah penukaran UTF-8 kepada ISO-8859-1 dalam C#

Apabila menukar rentetan UTF-8 kepada ISO-8859-1, anda mungkin menghadapi ralat hasil jika tidak dikendalikan dengan betul. Mari analisa masalah dan berikan penyelesaian.

Kod dan soalan

Coretan kod yang anda berikan cuba menukar UTF-8 kepada ISO-8859-1 menggunakan Encoding.GetString dan Encoding.GetBytes. Walau bagaimanapun, untuk penukaran tertentu ini, langkah tambahan diperlukan.

Penyelesaian: Gunakan Pengekodan.Tukar

Untuk melaraskan tatasusunan bait dengan betul sebelum menyahkod kepada pengekodan sasaran, Encoding.Convert hendaklah digunakan. Berikut ialah kod yang diubah suai:

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

Penjelasan

Encoding.GetEncodingMengambil pengekod dan penyahkod untuk pengekodan aksara tertentu. Encoding.GetBytesEnkodkan rentetan sumber UTF-8 ke dalam tatasusunan bait. Walau bagaimanapun, menyahkod tatasusunan bait ini secara langsung menggunakan Encoding.GetString tidak menghasilkan rentetan ISO-8859-1 yang dikehendaki.

Encoding.ConvertLaraskan tatasusunan bait agar sepadan dengan pengekodan sasaran. Dalam kes ini, ia menukar bait supaya sepadan dengan pengekodan ISO-8859-1. Tatasusunan bait yang dilaraskan kemudiannya boleh dinyahkodkan menjadi rentetan ISO-8859-1 yang betul. Encoding.GetString

Keputusan

Selepas menggunakan pengubahsuaian ini, rentetan yang terhasil akan ditukar dengan betul kepada ISO-8859-1 dan tidak akan bercelaru.

Atas ialah kandungan terperinci Bagaimana untuk Menukar 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