如何检测Java中的字符集编码?

时间:2010-02-12 00:03:52

标签: java character-encoding

有人知道是否有一种简单的方法来检测Java中的字符集编码?在我看来,有些程序能够检测给定数据使用的字符集,或至少进行近似。

我认为底层机制必须解码每个字符集中的数据并选择具有最少未定义字符的字符集,然后选择哪个字符集更常见以打破平局。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

查看jchardet,一个从Mozilla浏览器移植的库,专门用于“猜测”文档的字符集。

作为替代方案,cpdetector库有点新,专门检测文档的代码页。

答案 1 :(得分:-3)

为了查找数据是否为任何unicode格式(UTF-8,UTF-16 ......等),您可以读取字节流中的数据并检查前4个字节(BOM大小),对于每个编码,它将与众不同

例如:

对于UTF-8,

前3个字节将是EF,BB,BF

对于unicode编码以外的编码,我不确定...