读书人

C#读二进制文件.输出字符缓冲区太小的

发布时间: 2011-12-29 22:09:38 作者: rapoo

C#读二进制文件.输出字符缓冲区太小的问题.路过的都来看看..散分!
报错为:
输出字符缓冲区太小,无法包含解码后的字符,编码“Unicode (UTF-8)”的操作回退“System.Text.DecoderReplacementFallback”。
参数名: chars
我每次读取100个字节...然后把读取的值赋给一个实体类的值..第一次读都没问题.大于第一次后...某些读取就开始报这个错误了..

下面代码是读取按钮事件里面的代码..贴了一部分..字段太多.
FileStream file=new FileStream(FileUpload1.PostedFile.FileName, FileMode.Open, FileAccess.Read);
FileInfo info = new FileInfo(FileUpload1.PostedFile.FileName);
BinaryReader reader=new BinaryReader(file);
Datarec datarec = new Datarec();
char[] chararray=new char[25];
string charvalue= " ";
string charminrf = " ";
string chardatarec = " ";
for (int j = 0; j < info.Length/100; j++)
{
datarec.baoformat = reader.ReadChar();
datarec.station = reader.ReadChar();
chararray = reader.ReadChars(6);
for (int i = 0; i < chararray.Length; i++)
{
charvalue += chararray[i].ToString();
}
datarec.stationname = charvalue;
chararray = null;

datarec.rectime = reader.ReadInt16();
datarec.recdate = reader.ReadUInt16();
datarec.wd2dd = reader.ReadInt16();
datarec.wd2df = reader.ReadInt16();
datarec.wd10dd = reader.ReadInt16();
datarec.wd10df = reader.ReadInt16();


高人指点..

[解决办法]
up
------解决方案--------------------


首先你确定这个文件都是可以按照你期望的所转换?

其次可以将UTF-8尝试用别的编码格式 因为编码格式的不匹配可能也会引起此问题
[解决办法]
帮顶一个。
[解决办法]
路过,帮顶
[解决办法]
路过~~
[解决办法]
帮你顶 顺便挣点分
[解决办法]
请问楼主上次那个读取天气预报文件成功了没,我也遇到这个问题,希望你能指教指教
[解决办法]
顶一下

[解决办法]
友情帮顶。。。。
[解决办法]
关注下
[解决办法]
路过,帮顶
[解决办法]
up
[解决办法]
看的头疼,帮顶吧

读书人网 >C#

热点推荐