如何自动识别文件编码是用UTF-8或者GBK或其他字符级编码保存的?

ee4456 2008-05-04 07:32:52
如题,我知道ASCII码文件前无前缀字符,UTF-8的文本文件前会有EFBBBF三个字节。Unicode文件前会FFFE两个字节,Unicode big endian文件前会有FEFF00三个字节,但是具体怎么样判断我就不知道了..
有没有哪个高手帮帮忙,谢谢谢谢.....
并且我现在可以得到文件的byte[]数组..但是我直接输出byte[0],byte[1]这样好象是不行的饿。..
...全文
936 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ee4456 2008-05-04
  • 打赏
  • 举报
回复
老紫竹,你给的我没有权限看- -
ee4456 2008-05-04
  • 打赏
  • 举报
回复
TomyGuan
谢谢了/...
老紫竹 2008-05-04
  • 打赏
  • 举报
回复
我这里有一段检测编码类型的代码,成功率很高! http://www.java2000.net/viewthread.jsp?tid=1679
ee4456 2008-05-04
  • 打赏
  • 举报
回复
if (b[0] == (byte)0xef && b[1] == (byte)0xbb && b[2] == (byte)0xbf)
guess = "UTF-8";
else if (b[0] == (byte)0xff && b[1] == (byte)0xfe)
guess = "UTF-16";
else if (b[0] == (byte)0xfe && b[1] == (byte)0xff && b[2] == (byte)0x00)
guess = "UTF-16BE";
我这样写了
nanjg 2008-05-04
  • 打赏
  • 举报
回复
sorry 发错了一个链接

讨论继续
nanjg 2008-05-04
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080402/11/7ab3a3f3-1019-4c0a-ac99-35388f064b1e.html
TomyGuan 2008-05-04
  • 打赏
  • 举报
回复
用头二个字节来判断
TomyGuan 2008-05-04
  • 打赏
  • 举报
回复
byte [] buff = item.get();//把字符变成byte
if (buff[0]==-17 && buff[1]==-69 && buff[2]==-65){
this.str = new String(buff,"utf-8");//utf-8
}else if(buff[0]==-1 && buff[1]==-2){
this.str = new String(buff,"unicode");//unicode
}else if(buff[0]==-2 && buff[1]==-1){
this.str = new String(buff,"unicode big endian");//unicode big endian
}else{
this.str = new String(buff,"big5");
}
ee4456 2008-05-04
  • 打赏
  • 举报
回复
有没有人啊
ee4456 2008-05-04
  • 打赏
  • 举报
回复
在线等,急用,各位大下帮忙

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧