Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
2年前关闭。
Improve this question
经过一定的调查,如果
juniversalchardet jchardet cpdetector ICU4J
但是,我真的不知道哪个是最好的。有实践经验的人可以告诉我哪个是Java最好的吗? UTF-8:都检测到。 Windows-1255:juniversalchardet在检测到足够的希伯来字母时检测到,ICU4J仍认为它是ISO-8859-1。使用更多的希伯来字母,ICU4J将其检测为ISO-8859-8,这是另一种希伯来语编码(因此文本还可以)。 SHIFT_JIS(日语):检测到juniversalchardet,并且ICU4J认为它是ISO-8859-2。 ISO-8859-1:由ICU4J检测,不受juniversalchardet支持。
因此,应该考虑他最有可能要处理的编码。
最后,我选择了 ICU4J 。
请注意,ICU4J仍保持不变。
还要注意,您可能要使用ICU4J,并且如果由于未成功而返回null,请尝试使用juniversalchardet。或相反。
AutoDetectReader的Apache Tika正是这样做的-首先尝试使用HtmlEncodingDetector,然后尝试使用UniversalEncodingDetector(基于juniversalchardet),然后尝试使用Icu4jEncodingDetector(基于ICU4J)。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
2年前关闭。
Improve this question
经过一定的调查,如果
getEncoding
中的InputStreamReader
不起作用,我发现在Java世界中有一些编码检测项目:但是,我真的不知道哪个是最好的。有实践经验的人可以告诉我哪个是Java最好的吗?
最佳答案
我在某些 CSV文件上检查了juniversalchardet和ICU4J,结果不一致:
juniversalchardet具有更好的结果:
因此,应该考虑他最有可能要处理的编码。
最后,我选择了 ICU4J 。
请注意,ICU4J仍保持不变。
还要注意,您可能要使用ICU4J,并且如果由于未成功而返回null,请尝试使用juniversalchardet。或相反。
AutoDetectReader的Apache Tika正是这样做的-首先尝试使用HtmlEncodingDetector,然后尝试使用UniversalEncodingDetector(基于juniversalchardet),然后尝试使用Icu4jEncodingDetector(基于ICU4J)。
10-08 00:35