12

Openoffice ライターからメモ帳にコピペする際に特殊文字を全て読み込むサンプルアプリを作成しました。ダブルコードが異なり、これを読み込もうとすると。

var lines = File.ReadAllLines("..\\ter34.txt");

これにより、65533 の問題が発生します 問題が発生し、テキスト ファイルには次のものが含まれます。

これは次の記号に変更されました。

4

1 に答える 1

26

U+FFFDは「Unicode 置換文字」であり、読み込もうとしているデータが、バイナリ データをテキストに変換するために使用されているエンコーディングに対して無効である場合に使用されます。

たとえば、ISO-8859-1 を使用してファイルを書き出し、次にUTF-8 を使用してそれを読み取ろうとすると、単純に有効な UTF-8 ではないバイト シーケンスになってしまう可能性があります。無効なバイトはそれぞれ (デフォルトで) U+FFFD に変換されます。

File.ReadAllLines基本的に、2 番目の引数として ,に正しいエンコーディングを指定する必要があります。もちろん、最初にファイルのエンコーディングを知る必要があります。

于 2013-02-22T10:48:18.670 に答える