如何区分给定的字符串是UTF8还是GB2312
1个回答
展开全部
因为UTF8和GB2312有重复的编码区,
比如UTF8的两个字符:E5A6A4 E5A6A9
对应着GB2312的三个字符:E5A6 A4E5 A6A9
虽然对应的汉字不一样,但都是有效汉字。所以严格地说,是无法判断的。
但从UTF8编码规则看,字符串有几种固定的组合:
110xxxxx,10xxxxxx,10xxxxxx
1110xxxxx,10xxxxxx,10xxxxxx,10xxxxxx
等,如果符合这个条件,
那么可以说“字符串为UTF8编码的可能性非常大”。
比如UTF8的两个字符:E5A6A4 E5A6A9
对应着GB2312的三个字符:E5A6 A4E5 A6A9
虽然对应的汉字不一样,但都是有效汉字。所以严格地说,是无法判断的。
但从UTF8编码规则看,字符串有几种固定的组合:
110xxxxx,10xxxxxx,10xxxxxx
1110xxxxx,10xxxxxx,10xxxxxx,10xxxxxx
等,如果符合这个条件,
那么可以说“字符串为UTF8编码的可能性非常大”。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询