java 怎么判断编码是utf-8 还是gbk

如题所述

你是要判断字符还是判断文件的编码,若是字符:
String
str="123456";
String
type
=
"utf-8";
//更换这里进行其他编码判断
try
{
if
(str.equals(new
String(str.getBytes(type
),
type
)))
{
return
type;
}
}
catch
(Exception
e)
{
}
如果是文件,麻烦一些,可以使用一个开源项目cpdetector,这个我也没用过,你自己查一下吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-07-14
字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。
至于utf-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用utf-8节省空间。
gbk包含全部中文字符;utf-8则包含全世界所有国家需要用到的字符。
gbk是在国家标准gb2312基础上扩容后兼容gb2312的标准(好像还不是国家标准)
utf-8编码的文字可以在各国各种支持utf8字符集的浏览器上显示。
比如,如果是utf8编码,则在外国人的英文ie上也能显示中文,而无需他们下载ie的中文语言支持包。
所以,对于英文比较多的论坛
,使用gbk则每个字符占用2个字节,而使用utf-8英文却只占一个字节。
utf8是国际编码,它的通用性比较好,外国人也可以浏览论坛,gbk是国家编码,通用性比utf8差,不过utf8占用的数据库比gbk大
相似回答
大家正在搜