C#でUTF-8に変換した際の最後の文字化けの解決方法

C#では、UTF-8 でエンコードされたファイルの最後の 1 文字が文字化けしていると、エンコード方法が正しくない可能性があります。その場合、正しいエンコードを使用してファイルの読み書きをすれば問題が解消されます。

UTF-8エンコーディングを指定して、StreamReaderとStreamWriterクラスで入出力する場合

using (StreamReader reader = new StreamReader("file.txt", Encoding.UTF8))
{
    string content = reader.ReadToEnd();
    // 处理文件内容
}

using (StreamWriter writer = new StreamWriter("file.txt", false, Encoding.UTF8))
{
    // 写入文件内容
}

もう1つの解決方法は、エンコード.UTF8.GetBytesを使って、文字列をバイト配列に変換し、これをファイルに書き込むことです。

string content = "文本内容";
byte[] bytes = Encoding.UTF8.GetBytes(content);
File.WriteAllBytes("file.txt", bytes);

ファイルの読み書き時、常に同じエンコーディングを使用し、ファイル操作に適したファイルストリームかクラスを使用するようにしてください。

bannerAds