文件读取和编码的问题,总是不不能读取文件最开始的两个字节(50分)。
由于要判断文件的编码,所以需要读取文件的最开始的几个字节,
如UTF8编码的文本文件的最开始的两个字节是 FF FE
我有一个UTF8文件 FF FE 2F 00 2A 00 0D 00 .......(使用UtralEdit查看出来的)
在C#程序中,使用如下代码读取
FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read);
BinaryReader r = new BinaryReader(fs,System.Text.Encoding.Unicode);
byte[] ss = r.ReadBytes(3);
发现ss中是2F,2A,0D三个数字,而最前面的FFEE并没有获取到,不知道怎么回事。
敢请大侠们出招相助。
先谢了
------解决方案--------------------
BinaryReader r = new BinaryReader(fs,System.Text.Encoding.Unicode);
你都自己指定了Unicode编码,FF FE当然被BinaryReader忽略了。
你这样试试看:
C# code
FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read);
byte[] header;
fs.Read(header, 0, 2);
------解决方案--------------------
顶了先
------解决方案--------------------
你不能先编码再读。