黑马程序员技术交流社区
标题:
java读取txt文件乱码
[打印本页]
作者:
adamjy
时间:
2014-4-7 10:05
标题:
java读取txt文件乱码
Java字符流读取文件的时候如果不指定编码方式,就会以系统默认的编码方式来读取。但txt文件,在读取之前我是不知道他是什么编码形式的,所以我也不能事先在代码中加入解码的参数。有什么方式可以对不管是gbk还是utf-8或是Unicode都可以正确读取的吗?
作者:
zhangbingyuan
时间:
2014-4-7 10:52
你可以通过判断读取到txt文件的字节流中的字节的编码格式来自动判断文件的编码格式:
private String codetype(byte[] head) { //参数是txt文件的字节数组
byte[] codehead = new byte[4];
// 截取数组
System.arraycopy(head, 0, codehead, 0, 4);
String code = "";
if(head[0] == -1 && head[1] == -2) {
code = "UTF-16";
}
else if(head[0] == -2 && head[1] == -1) {
code = "Unicode";
}
else if(head[0] == -17 && head[1] == -69 && head[2] == -65)
code = "UTF-8";
else {
code = "gb2312";
}
return code;
}
然后你再根据获取到的编码格式,将输出流的编码格式设置成对应的格式就行了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2