java 判断字符串什么编码类型

 我来答
javaallstar
推荐于2016-09-09 · TA获得超过533个赞
知道小有建树答主
回答量:154
采纳率:100%
帮助的人:191万
展开全部

如果是Java的String对象的话,则一定是Unicode的,这个没有为什么,Java就是这么定的。


我猜你的问题应该是如何判断一段字节流是什么编码类型,对吗?比如一个文件,或是网络上面取下来的一段Byte数组,你需要用一个合适的编码来解析成字符串。

这个让你失望了,没有一个文档化的,确定的方法来判断,只能用测试的方法,这个方法也只是猜测,不能百分百的确定,方法如下:

  1. 用常见的编码方式对字节流进行解码,比如Unicode,UTF8, UTF8 without BOM, UTF16, ANSI等等。

  2. 对解析的结果进行判断,是不是一个合理的可打印字符,可打印字符最多的解码方式就是最可能的编码了。

  3. 如何判断可打印字符?流程如下:把解析好的字符串按照字符进行遍历,把每一个字符转化成Unicode编码,看看这些编码是不是Unicode的支持范围极客。

  4. 如果发现有种编码方式都是可打印字符,那么再使用本步骤:对字符串进行分词,分词这个在此不作赘述,你自己再研究一下。分词效果好的就是最可能的编码了。(不过通常到第三步就能搞定了,第四部绝大部分用不着)

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式