package com.icitic.data.comp.txt.parser;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import com.google.common.base.Charsets;
/**
* 判断文件类型
* @author Administrator
*
*/
public class EncodingDetect {
public static Charset detectEncoding(File file) {
int[] head = new int[4];
InputStream inputStream = null;
try {
inputStream = new FileInputStream(file);
for (int i = 0; i < 4; i++) {
head[i] = inputStream.read();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
} catch (IOException e) {
}
}
Charset code = Charset.forName("GBK");
if (head[0] == 0xef && head[1] == 0xbb && head[2] == 0xbf) {
code = Charsets.UTF_8;
} else if (head[0] == 0xfe && head[1] == 0xff) {
code = Charsets.UTF_16LE;
} else if (head[0] == 0xff && head[1] == 0xfe) {
code = Charsets.UTF_16BE;
} else if (head[0] == 0xff && head[1] == 0xfe && head[2] == 0x0 && head[3] == 0x0) {
code = Charsets.UTF_16LE;
} else if (head[0] == 0x0 && head[1] == 0x0 && head[2] == 0xfe && head[3] == 0xff) {
code = Charsets.UTF_16BE;
}
return code;
}
public static Charset detectEncoding(String path) {
return detectEncoding(new File(path));
}
}
判断文件实际编码格式
最新推荐文章于 2024-05-26 06:27:18 发布