首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么判断utf8还是gb2312

2012-03-05 
如何判断utf8还是gb2312不是文件,是程序中,从网页抓的数据,如何判定是utf8还是gb2312[解决办法]只要读取第

如何判断utf8还是gb2312
不是文件,是程序中,从网页抓的数据,如何判定是utf8还是gb2312

[解决办法]
只要读取第一个字节并判断它的16进制大于0xE0就可知它是UTF8!
[解决办法]
只要读取第一个字节并判断它的16进制大于0xE0就可知它是UTF8!
ord($s[0])> 128 //GB2312
ord($s[0])> 0xE0 //UTF8

GB2312是GBK的子集,GBK是GB18030的子集
GBK是包括中日韩字符的大字符集合
如果是中文的网站 推荐GB2312 GBK有时还是有点问题
为了避免所有乱码问题,应该采用UTF-8,将来要支持国际化也非常方便
UTF-8可以看作是大字符集,它包含了大部分文字的编码。
使用UTF-8的一个好处是其他地区的用户(如香港台湾)无需安装简体中文支持就能正常观看你的文字而不会出现乱码。
[解决办法]
http://topic.csdn.net/t/20061225/11/5253725.html
[解决办法]
一个html文件的最前面有字段指明它用的编码

比如

Baidu 的

<html> <head> <title> 百度一下,你就知道 </title> <meta http-equiv=Content-Type content= "text/html;charset=gb2312 ">

看到这个没
charset=gb2312 "

microsoft的

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN " "http://www.w3.org/TR/html4/loose.dtd "> <html lang= "en " dir= "ltr "> <head> <META http-equiv= "Content-Type " content= "text/html; charset=utf-16 "> <


charset=utf-16
[解决办法]
是没有办法去判断,除非告诉你这个是什么编码的
[解决办法]
这种前提下无法做出完整的判断
[解决办法]
试试这个原则看

根据不同编码的特点和标志,对一个文本文件判断编码方法如下
1 . UTF7 所有字节的内容不会大于127,也就是不大于&HFF
2 . UTF8 起始三个字节为 "EF BB BF "
3 . UTF16BigEndian 起始三个字节为 "FE FF "
4 . UTF16SmallEndian 起始三个字节为 "FF FE "

........
[解决办法]
码流损失后,通常情况下unicode各种编码之间是可以判断出当前使用的是utf8还是utf16,utf32,而且可以把错误的码流识别出来。这个在unicode规范里是有分析的。但是加上gb编码我就不是太清楚了,gb(国标)这个冬冬,似乎不能和unicode兼容,不能只就编码结果完全区分出来

热点排行