首頁 > 後端開發 > C++ > 如何在 C# 中正確將 UTF-8 字串轉換為 ISO-8859-1?

如何在 C# 中正確將 UTF-8 字串轉換為 ISO-8859-1?

DDD
發布: 2025-01-08 14:21:40
原創
466 人瀏覽過

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

在 C# 中正確處理 UTF-8 到 ISO-8859-1 字串轉換

將 UTF-8 字串直接轉換為 ISO-8859-1 (Latin-1) 通常會導致資料遺失和字元損壞。 這是因為 UTF-8 使用可變長度編碼,而 ISO-8859-1 是固定長度、單字節編碼。 簡單地更改編碼而不進行正確的位元組轉換將導致不正確的輸出。

準確轉換的關鍵在於使用Encoding.Convert方法。此方法正確地將 UTF-8 位元組對應到其 ISO-8859-1 等效字節,處理任何必要的轉換。 ISO-8859-1 中不存在的字元將被替換為其最佳近似值,否則可能會遺失。

這是修正後的 C# 程式碼:

<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>
登入後複製

此程式碼首先從原始字串中取得 UTF-8 位元組。 然後,Encoding.Convert 將這些位元組轉換為適合 ISO-8859-1 的表示形式。 最後,使用 ISO-8859-1 編碼對生成的位元組數組進行解碼以產生最終字串。 請記住,在此過程中,ISO-8859-1 字元集之外的任何字元都可能會遺失或被替換。

以上是如何在 C# 中正確將 UTF-8 字串轉換為 ISO-8859-1?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板