Visual Basic.NET“输出字符缓冲区太小,无法包含已解码的字符,编码'Unicode(UTF-8)'后备'系统

时间:2012-11-07 00:40:25

标签: binaryreader

我正在尝试读取一个二进制文件,其中我使用BinaryWriter对象附加数据。我一直收到这个错误:

  

“输出字符缓冲区太小而无法包含已解码的内容   字符,编码'Unicode(UTF-8)'后备   'System.Text.DecoderReplacementFallback'。“

我的文件中包含|这样的字符,我怀疑是问题,但我不知道如何解决。

1 个答案:

答案 0 :(得分:3)

最可能的原因是您的文件包含一些二进制数据,它们不代表有效的UTF-8代码点,在您尝试读取UTF-8字符的位置。

如果您的读取算法与写入算法失去“同步”并尝试从错误的位置读取字符,而其他地方(不是字符)被写入,则会发生这种情况。