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 サイトの他の関連記事を参照してください。