【问题标题】:How to detect the character encoding of a file?如何检测文件的字符编码?
【发布时间】:2010-09-10 12:19:29
【问题描述】:

我们的应用程序从我们的用户那里接收文件,如果这些文件是我们支持的编码类型(即 UTF-8、Shift-JIS、EUC-JP),则必须验证这些文件,一旦验证了该文件,我们还需要将该文件保存在我们的系统中,并将其编码为元数据。

目前,我们正在使用JCharDet(这是 mozilla 字符检测器的 Java 端口),但有一些 Shift-JIS 字符似乎无法检测为有效的 Shift-JIS 字符。

还有什么我们可以使用的想法吗?

【问题讨论】:

标签: java utf-8 character-encoding detect shift-jis


【解决方案1】:

ICU4J 的CharsetDetector 会帮助你。

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path));
CharsetDetector cd = new CharsetDetector();
cd.setText(bis);
String charsetName = cd.detect().getName();

顺便问一下,什么样的字符导致了错误,什么样的错误导致了?我认为 ICU4J 也会有同样的问题,具体取决于字符和错误。

【讨论】:

    【解决方案2】:

    Apache Tika 是一个内容分析工具包,主要用于确定文件类型(与编码方案相反),但它确实返回文本文件类型的内容编码信息。我不知道它的算法是否和 JCharDet 一样先进,但它可能值得一试......

    【讨论】:

      猜你喜欢
      • 2011-05-30
      • 2012-03-16
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      • 2010-09-10
      相关资源
      最近更新 更多