最近遇到外采产品中,编码不统一问题,故需要对编码进行转换并统一。
手工转换代价太大,这就需要能够通过编码的形式动态探测源文件的编码类型,而后在进行统一格式转换。
在转换过程中尝试通过编码直接去BOM来识别,但由于源文件编码类型很多,且很多不为常用和未知,转换工作很棘手。
在网络上找到一篇文章,发现Apache Tika能够很好的识别源文件的编码类型,这个工具解决了团队在转码过程中的大部分问题。
下面我们引用一下文章中的用例;
1、UniversalEncodingDetector类来识别文件编码:
public static void main(String[] args) throws IOException, TikaException {
// TODO Auto-generated method stub
File file=new File("[文件路径]");
InputStream stream=null;
try
{
stream=new FileInputStream(file);
EncodingDetector detector=new UniversalEncodingDetector();
Charset charset = detector.detect(new BufferedInputStream(stream), new Metadata());
System.out.println("编码:"+charset.name());
}