2017-01-03 53 views
0

当从二进制文件中读取字符BinaryReader时,我经常遇到无法读取为字符的格式错误的数据。我得到了一个ArgumentException抛出。检测无效字符

有什么办法,我期待下一个角色会抛出异常所以不是试图读取它(这会抛出异常),才能对付它没有昂贵的操作?

BinaryReader.ReadChar();

哪些输入导致ArgumentException抛出?

+0

[文档](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"; 
} 

随意张贴一个更好的解决方案。