© 1999-2048 dssz.net 粤ICP备11031372号
* 1、cpDetector内置了一些常用的探测实现类,这些探测实现类的实例可以通过add方法加进来,如:ParsingDetector、 JChardetFacade、ASCIIDetector、Unicod eDetector. * 2、detector按照“谁最先返回非空的探测结果,就以该结果为准”的原则. * 3、cpDetector是基于统计学原理的,不保证完全正确. **/ CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance(); detector.add(new ParsingDetector(false)); detector.add(JChardetFacade.getInstance());// 需要第三方JAR包:antlr.jar、chardet.jar. detector.add(ASCIIDetector.getInstance()); detector.add(UnicodeDetector.getInstance()); Charset charset = null; File file = new File(filePath); try { charset = detector.detectCodepage(file.toURI().toURL()); } catch (Exception e) { log.error(e, e); } String charsetName = Const.GBK; if (charset != null) { if (charset.name().equals("US-ASCII")) { charsetName = Const.ISO_8859_1; } else if (charset.name().startsWith("UTF")) { charsetName = charset.name();// 例如:UTF-8,UTF-16BE. } } return charsetName; } ...展开收缩