什么是最准确的编码检测器?[已关闭]
2022-09-01 04:00:00
经过一定的调查,我发现在java世界中有一些编码检测项目,如果in不起作用:getEncoding
InputStreamReader
但是,我真的不知道哪个是所有人中最好的。任何有实践经验的人都可以告诉我哪一个是Java中最好的吗?
经过一定的调查,我发现在java世界中有一些编码检测项目,如果in不起作用:getEncoding
InputStreamReader
但是,我真的不知道哪个是所有人中最好的。任何有实践经验的人都可以告诉我哪一个是Java中最好的吗?
我已经在一些CSV文件上检查了juniversalchardet和ICU4J,结果不一致:juniversalchardet有更好的结果:
因此,人们应该考虑他最有可能必须处理的编码。最后我选择了ICU4J。
请注意,ICU4J 仍在维护。
另请注意,您可能希望使用 ICU4J,如果它因为未成功而返回 null,请尝试使用 juniversalchardet。反之亦然。
Apache Tika的AutoDetectReader正是这样做的 - 首先尝试使用HtmlEncodingDetector,然后是UniversalEncodingDetector(基于juniversalchardet),然后尝试Icu4jEncodingDetector(基于ICU4J)。
我在网上找到了一个答案:
http://fredeaker.blogspot.com/2007/01/character-encoding-detection.html
它在这里说了一些可验证的东西:
字符编码检测器的优势在于其重点是否在统计分析或HTML META和XML前导发现上。如果您正在处理具有 META 的 HTML 文件,请使用 cpdetector。否则,最好的选择是monq.stuff.EncodingDetector或com.sun.syndication.io.XmlReader。
这就是为什么我现在使用cpdetector。我将用它的结果更新帖子。