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

DDD
Lepaskan: 2025-01-08 14:21:40
asal
466 orang telah melayarinya

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

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

Penukaran terus rentetan UTF-8 kepada ISO-8859-1 (Latin-1) selalunya mengakibatkan kehilangan data dan kerosakan aksara. Ini kerana UTF-8 menggunakan pengekodan panjang berubah-ubah, manakala ISO-8859-1 ialah pengekodan panjang tetap, satu bait. Hanya menukar pengekodan tanpa penukaran bait yang betul akan membawa kepada output yang salah.

Kunci kepada penukaran yang tepat terletak pada penggunaan kaedah Encoding.Convert. Kaedah ini memetakan bait UTF-8 dengan betul kepada setara ISO-8859-1 mereka, mengendalikan sebarang transformasi yang diperlukan. Aksara yang tidak terdapat dalam ISO-8859-1 akan digantikan dengan anggaran terbaiknya atau mungkin hilang.

Berikut ialah kod C# yang diperbetulkan:

<code class="language-csharp">Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
string utf8String = "ÄäÖöÕõÜü"; // Example UTF-8 string
byte[] utf8Bytes = utf8.GetBytes(utf8String);
byte[] isoBytes = Encoding.Convert(utf8, iso, utf8Bytes);
string iso88591String = iso.GetString(isoBytes);</code>
Salin selepas log masuk

Kod ini mula-mula mendapat UTF-8 bait daripada rentetan asal. Kemudian, Encoding.Convert menukar bait ini menjadi perwakilan yang sesuai untuk ISO-8859-1. Akhir sekali, tatasusunan bait yang terhasil dinyahkod menggunakan pengekodan ISO-8859-1 untuk menghasilkan rentetan akhir. Ingat bahawa mana-mana aksara di luar set aksara ISO-8859-1 mungkin hilang atau diganti semasa proses 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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan