「HabitaþÒo」のような単語を含む行が出力で壊れてしまうという顧客サイトの問題があります。テキストファイルを処理しています(選択した行を引き出して別のファイルに書き込んでいます)
診断のために、私は問題をその悪い言葉だけを含むファイルに要約しました。
元のファイルにはBOMが含まれていませんが、.netはそれをUTF-8として読み取ることを選択します。
読み書きすると、この「Habita��o」のようになります。
BadWord.txtファイルの16進ダンプは次のようになります
このコードでファイルをコピーする
using (var reader = new StreamReader(@"C:\BadWord.txt"))
using (var writer = new StreamWriter(@"C:\BadWordReadAndWritten.txt"))
writer.WriteLine(reader.ReadLine());
。。。与える。。。
リーダーのエンコーディングを保持しても何も起こりません
using (var reader = new StreamReader(@"C:\BadWord.txt"))
using (var writer = new StreamWriter(@"C:\BadWordReadAndWritten_PreseveEncoding.txt", false, reader.CurrentEncoding))
writer.WriteLine(reader.ReadLine());
。。。与える。。。
ここで何が起こっているのか、このファイルを処理して元のテキストを保持するにはどうすればよいですか?