这里指的文本是用于Windows系统中的扩展名为.txt的文件。
Notepad(记事本)只支持四种格式:ANSI/Unicode/Unicode big endian/UFT-8,
首先,不同编码的文本,是根据文本的前两个字节来定义其编码格式的。定义如下:
ANSI: 无格式定义;
Unicode: 前两个字节为FFFE;
Unicode big endian: 前两字节为FEFF;
UTF-8: 前两字节为EFBB;
private static void judgeTxtCode(String path) throws Exception {
FileInputStream fis = null;
try {
fis = new FileInputStream(path);
int a = fis.read();
int b = fis.read();
if (a == 0xFF && b == 0xFE) {
System.out.println("Unicode");
} else if (a == 0xFE && b == 0xFF) {
System.out.println("UTF-16BE");
} else if (a == 0xEF && b == 0xBB) {
System.out.println("UTF-8");
} else {
System.out.println("GBK");
}
} finally {
if (fis != null) {
fis.close();
}
}
}