日期:2014-05-18  浏览次数:20877 次

C#字符转换问题,路过的进来看看....
该文件用记事本打开看不到什么东西,就几个乱码.
用VS
打开文件如下格式:
30   00   47   33   31   35   38   00     00   00   93   14   01   00   BD   00
13   00   C7   00   14   00   DA   00     1D   00   EC   00   33   00   11   02

该文件包含着一些数据.
我现在想把这个文件读出来,而且读出来的数据可以让人看懂.
我用StreamReader读出来的依然是乱码...
不知道是不是还要字符转换啊?

望大虾指点下,感激不禁啊!
最好给点代码.

------解决方案--------------------
先用编码器 GB2312 编译一下,然后再读取...
------解决方案--------------------
你的文件是不是文本格式的?
------解决方案--------------------
是什么格式的文件
------解决方案--------------------
看起来都是16进制的数
------解决方案--------------------
独有的文件格式可能根本不存字符 转换有啥用啊
------解决方案--------------------
你不知道他的数据储存结构没用,取不了
------解决方案--------------------
这个文件是二进制流文件,你必须知道其文件存储格式,才能转换成有意义的数据
------解决方案--------------------
没有数据的存储格式没办法去数据
------解决方案--------------------
引入是流的格式错啊
------解决方案--------------------
光知道字段,数据类型是不行的,比如把一个对象写到文件中,你不知道类怎么读?
------解决方案--------------------
二进制文件,你必须知道其文件存储格式
再用Response.BinaryWrite输出
------解决方案--------------------
读写二进制文件没有什么特别的

FileStream fs=File.OpenRead( "文件名 ");
byte[] buf=new byte[fs.length];
fs.read(buf,0,buf.length);

一个不是很大的文件这样就可以读进来,关键是要知道那个文件的存储结构,要知道上面那个字节数组的哪个位置是存储的什么数据。
例如,如果知道第1字节到第4字节存储的是日期,5,6字节存储温度值,那就可以通过处理得到有用的数据。
这个定义你就要去问定义那个文件的人了