c#开发碰到一个问题,同一个方法,运行在不同系统为什么读出来的数据不一样?求解答
有个很奇怪的问题,我自己的机器是xp 在上面用vs2008做开发,程序里面有这样一段代码
System.IO.FileStream fs;
System.IO.BinaryReader br;
fs = new System.IO.FileStream(inFile, FileMode.Open, FileAccess.Read);
br = new System.IO.BinaryReader(fs);
。。。。。
1 float lon = br.ReadSingle();
2 gpfHead.fPLonRes = lon;
3 float lat = br.ReadSingle();
4 gpfHead.fPLatRes = lat;
5 char[] cReserved = new char[1808];//保留空间
6 for (int i = 0; i < 1808; i++)
{
7 cReserved[i] = br.ReadChar();
}
8 gpfHead.cReserved = cReserved;
dingBiaoBiao = new int[8, 1024];
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 1024; j++) { 9 dingBiaoBiao[i, j] = br.ReadInt32();
}
}
在xp系统上和window2003上面运行读同一个文件读出来的数据不一样,具体如下:
第7行读出来的不一样
--在xp系统上cReserved[i]的值cReserved [0] = 65533 '?'
---在2003的系统上 cReserved[0] = 23 ''
第9行的程序
---xp系统上 dingBiaoBiao[0, 0] = 333784
---在2003的系统上 dingBiaoBiao[0, 0] = 69545984
不知道为什么 谢谢高手给解答
c#
------解决方案--------------------br = new System.IO.BinaryReader(fs); 这句,lz 加上 Encoding 参数看看
估计是两个系统默认情况下的字符编码不一样
------解决方案--------------------