ホームページ > バックエンド開発 > C++ > C# で UTF-8 文字列を ISO-8859-1 に正しく変換するにはどうすればよいですか?

C# で UTF-8 文字列を ISO-8859-1 に正しく変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-08 14:34:40
オリジナル
294 人が閲覧しました

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

C# で UTF-8 文字列を ISO-8859-1 に正しく変換する

UTF-8 文字列を ISO-8859-1 に直接変換すると、データの損失や不正確な結果が生じる可能性があります。 重要なのは、文字列のバイト配列表現を正しく処理することです。 よくある間違いは、ISO-8859-1 エンコーディングを使用して UTF-8 バイトを誤ってデコードすることです。

この解決策には 2 段階のプロセスが含まれます。まず、UTF-8 バイト配列を ISO-8859-1 バイト配列に変換し、次に ISO-8859-1 エンコーディングを使用してそのバイト配列をデコードします。 これにより、バイトの誤解を避けることができます。

修正された C# コードは次のとおりです:

<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>
ログイン後にコピー

このアプローチでは、Encoding.Convert を使用して適切なバイト単位の変換を実行し、結果の文字列が ISO-8859-1 エンコード (存在する文字のサブセットのみをサポートする) の制限内で元のデータを正確に反映するようにします。 UTF-8)。 ISO-8859-1 で表現できない文字は、この変換中に失われるか置き換えられることに注意してください。

以上がC# で UTF-8 文字列を ISO-8859-1 に正しく変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート