2017-01-03 5 views
0

BinaryReaderでバイナリファイルから文字を読み込むと、charとして読み込めない形式のデータが出てくることがよくあります。私はが投げられる。無効な文字の検出

高価な操作をせずに次の文字を処理しようとすると、例外をスローする代わりに次の文字が例外をスローすることが予想されます。入力はArgumentExceptionがスローされます

BinaryReader.ReadChar();

+0

[documentation](https://msdn.microsoft.com/en-us/library/system.io.binaryreader.readchar(v = vs.110).aspx)では、代わりに 'ReadChars'を使用することを提案しています。 – juharr

+0

私は知っていますが、それは単一の文字を読むときに同じ例外を投げていた... – Karlovsky120

答えて

0

ああは、ちょうどそれを考え出し:

char next = (char)reader.ReadByte(); 

if (Char.IsSurrogate(next)) { 
    return "Non-valid char value"; 
} 

は、よりよい解決策を投稿してお気軽に。