用
InputStream input = file.getInputStream();
InputStreamReader inReader = new InputStreamReader(input);
读取Unicode编码的TXT文件是乱码,
通过修改上面代码:
InputStream input = file.getInputStream();
InputStreamReader inReader = new InputStreamReader(input, "Unicode ");
就不会产生乱码,但万一别人上传的TXT是UTF-8,以上程序又会读取乱码了,
请问能不能获取TXT文件的编码格式呢?
------解决方案--------------------
顶一下
------解决方案--------------------
没有办法
------解决方案--------------------
你用的这种是基于字节流的方法,
换用Reader,基于unicode字符流的方法把,就不会有乱码了
------解决方案--------------------
用 FileInputStream 使用字节的方式读入到 byte [] b 中,
然后再判断。
推荐楼主:(推荐)
http://www.regexlab.com/zh/encoding.htm
------解决方案--------------------
你可以根据最先读进来的前两个byte来判定是什么编码的文件。
0xefbb: 编码格式 "UTF-8 ";
0xfffe: 编码格式 "Unicode ";
0xfeff: 编码格式 "UnicodeBig ";
你试试看
------解决方案--------------------
怎么获取前两个byte?请指教.
用getBytes()啊。
------解决方案--------------------
为什么不用字符流去读数据呢