私のプログラムは別のファイルを読み取って単語文書を生成していますが、出力は文字化けの例を生成します:出力が「Q4テストテキスト」であるはずのときに、「Q4テストテキスト」を生成しますこれまでのところ、エンコーディングの問題だと思います問題を解決するには、次のコードを変更する必要がある場合があります。
byte[] バイト = file.OpenBinary();
これはファイルを読み取りますが、エンコーディングが正しくないように見え、コードがこのファイルを操作して書き戻すと、文字化けが発生します。私はgoogleとstackExchangeを調査し、これを修正するためにいくつかのことを試みましたが、これらのどれも問題を修正していないようです:
//Alternate code 1
var sourceBytes = file.OpenBinary();
byte[] bytes = Encoding.Convert(Encoding.Default, Encoding.UTF8, sourceBytes);
byte[] bytes = Encoding.Convert(Encoding.UTF8, Encoding.UTF32, sourceBytes);
//Alternate code 2
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
string s = enc.GetString(sourceBytes);
byte[] bytes = Encoding.UTF8.GetBytes(s);
//Alternate code 3
var stream = file.OpenBinaryStream();
var sr = new StreamReader(stream);
var sw = new StreamWriter(stream);
var s = sr.ReadToEnd();
s += "AAA";
byte[] bytes = Encoding.UTF8.GetBytes(s);