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