日期:2014-05-20 浏览次数:20747 次
/** * 判断文件的编码格式 * @param fileName :file * @return 文件编码格式 * @throws Exception */ public static String codeString(String fileName) throws Exception{ BufferedInputStream bin = new BufferedInputStream( new FileInputStream(fileName)); int p = (bin.read() << 8) + bin.read(); String code = null; switch (p) { case 0xefbb: code = "UTF-8"; break; case 0xfffe: code = "Unicode"; break; case 0xfeff: code = "UTF-16BE"; break; default: code = "GBK"; } return code; }
------解决方案--------------------
获取文件的前三个字节。
------解决方案--------------------
1:可以试试
Unicode: 前两个字节为FFFE;
Unicode big endian: 前两字节为FEFF;
UTF-8: 前两字节为EFBB;
其他的格式没找到,不过如果是中文的话,除了UTF8就是GB2312,要不就是BIG5,
2.取前100个字符,用格式编码尝试,看哪个不是乱码
3.用其他文本编辑工具打开
Jota Text Editor
Jota 是一个为超长文本文件设计的文本编辑器。
她的名字发音为 "i-o-ta"。
特性
- 支持多达 100 万个字符。
- 自动检测多种字符编码。
------解决方案--------------------
utf-8前面3个字节标志:ef bb bf