java 怎么判断文本内容的编码 20

 我来答
优就业郭老师
2017-08-17 · TA获得超过961个赞
知道小有建树答主
回答量:1053
采纳率:90%
帮助的人:379万
展开全部

判断Java文本内容的编码:

1、简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK。

按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理就是只要读出文件前三个字节,判定这些字节的值,就可以得知其编码的格式。其实,如果项目运行的平台就是中文操作系统,如果这些文本文件在项目内产生,即开发人员可以控制文本的编码格式,只要判定两种常见的编码就可以了:GBK和UTF-8。由于中文Windows默认的编码是GBK,所以一般只要判定UTF-8编码格式。


2、若想实现更复杂的文件编码检测,可以使用一个开源项目cpdetector,它所在的网址是:http://cpdetector.sourceforge.net/。它的类库很小,只有500K左右,cpDetector是基于统计学原理的,不保证完全正确。


3、探测任意输入的文本流的编码,方法是调用其重载形式: [java] view plaincopy
charset=detector.detectCodepage(待测的文本输入流,测量该流所需的读入字节数);   
上面的字节数由程序员指定,字节数越多,判定越准确,当然时间也花得越长。


4、判定文件编码的具体应用,属性文件(.properties)是Java程序中的常用文本存储方式,象STRUTS框架就是利用属性文件存储程序中的字符串资源。

补充:可以用下面代码获得Java支持编码集合:
Charset.availableCharsets().keySet();
可以用下面的代码获得系统默认编码:
Charset.defaultCharset();

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-08-17
展开全部
一段文本,是不可以判断出真实的编码的,除非是中文和英文之间判断。

~
~
~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式