そのため、文字エンコーディングに問題があります。次の 2 文字を UTF32 でエンコードされたテキスト ファイルに入れると、次のようになります。
鸕
そして、それらに対して次のコードを実行します。
System.IO.StreamReader streamReader =
new System.IO.StreamReader("input", System.Text.Encoding.UTF32, false);
System.IO.StreamWriter streamWriter =
new System.IO.StreamWriter("output", false, System.Text.Encoding.UTF32);
streamWriter.Write(streamReader.ReadToEnd());
streamWriter.Close();
streamReader.Close();
私は得る:
鸕
鸕
(同じ文字が 2 回、つまり入力ファイル != 出力)
最初の文字の 16 進数:
15 9E 02 00
そして2番目に:
15 9E 00 00
テキスト ファイルの作成には gedit を使用し、C# には mono を使用し、Ubuntu を使用しています。
入力ファイルまたは出力ファイルのエンコーディングを指定するかどうかも問題ではありません。UTF32 エンコーディングの場合は気に入らないだけです。入力ファイルが UTF-8 エンコーディングの場合に機能します。
入力ファイルは次のとおりです。
FF FE 00 00 15 9E 02 00 0A 00 00 00 15 9E 00 00 0A 00 00 00
それはバグですか、それとも私だけですか?
ありがとう!