关于HTML网页源码的字符编码(charset)格式(GB2312,GBK,UTF-8,ISO8859-1等)的解释
2015-03-22 13:55
459 查看
当你通过浏览器,打开某个网站,即某个url地址的时候,你所能正常看到网页的内容,各种文字,都可以正常显示,且没有显示乱码。
此过程,涉及到,浏览器帮你正确解析HTML源码,其中涉及到HTML网页源码的字符编码处理方面的问题。
和字符编码处理相关的大概逻辑是:
1.浏览器访问对应的url地址,并获取对应的html(或者,以及,其他的css,javascript等)网页源码
2.浏览器识别解析HTML源码内容
其中包含了,解析html的头部(header),找到对应的charset=xxx这部分的内容,然后把根据xxx所指示的字符编码类型,去解码对应的html内容,显示对应的文字,以保证不是乱码,可以正确的显示文字信息;
举个例子:
当我们通过浏览器,比如IE9,去打开对应的url地址:
http://www.songtaste.com/user/351979/
时,IE9中是可以正常显示对应网页内容的:
而此时,内部发生的过程就是:
1.IE9去访问url地址:
http://www.songtaste.com/user/351979/
去获得对应的html源码。
2.然后解析html源码并显示
其中包括了,解析html的头部信息,找到charset=gb2312,然后用GB2312编码格式去解码,然后就可以正常显示html中的内容,确保不是乱码了。
其中,关于html中charset部分的内容,此处详细解释一下:
此处我们可以通过Notepad++去查看当前html页面的源码:
然后就可以看到源码了,然后设置语言为HTML后,就可以方便看到对应的语法高亮后的源码了,其中就可以看到对应的html的header中的
部分的内容:
注:关于Notepad++的使用,以及如何设置为默认的HTML编辑器,不熟悉的可参考:
Notepad++的默认HTML查看器
此处的
charset=gb2312
就是我们所要找的,html的字符编码类型。
如果我们按照此编码格式去解析html内容,就可以正常解析,不会出现乱码了。
注意:
1.之前就看到某处说过,有个别的html网页本身做的不规范,导致本身自己声明的是某种编码类型,但是实际上,并不全是该类型的编码,导致你去按照其所声明的编码去解析,有时候仍会出现乱码。
比如,其html中明明写的是charset=gb2312,但是实际上,其部分字符是属于GBK的,导致你按照gb2312去解码,有些字符仍会是乱码,而安装gbk去解码,就全都正常显示了,没有乱码了。
即实际上应该是charset=gbk。
对此,需要稍微注意一下。
注:关于gb2312,和gbk的关系,不了解的去看:
中文字符编码标准
国内的网站,尤其是以前建的,好像很多还是GB2312(charset=gb2312),或者是GBK(charset=gbk)
但是越来越多的,都是采用兼容性更好的,包含字符更多的UTF-8编码的了(charset=utf-8)
国外的完整,如果只是某种语言的,比如英文的,好像也有采用iso8859-1的(charset=iso8859-1),同样,更多的网站,还是采用的是utf-8的。
此过程,涉及到,浏览器帮你正确解析HTML源码,其中涉及到HTML网页源码的字符编码处理方面的问题。
和html字符编码有关的流程
和字符编码处理相关的大概逻辑是:1.浏览器访问对应的url地址,并获取对应的html(或者,以及,其他的css,javascript等)网页源码
2.浏览器识别解析HTML源码内容
其中包含了,解析html的头部(header),找到对应的charset=xxx这部分的内容,然后把根据xxx所指示的字符编码类型,去解码对应的html内容,显示对应的文字,以保证不是乱码,可以正确的显示文字信息;
举个例子:
当我们通过浏览器,比如IE9,去打开对应的url地址:
http://www.songtaste.com/user/351979/
时,IE9中是可以正常显示对应网页内容的:
而此时,内部发生的过程就是:
1.IE9去访问url地址:
http://www.songtaste.com/user/351979/
去获得对应的html源码。
2.然后解析html源码并显示
其中包括了,解析html的头部信息,找到charset=gb2312,然后用GB2312编码格式去解码,然后就可以正常显示html中的内容,确保不是乱码了。
如何知道HTML源码是什么编码格式的
其中,关于html中charset部分的内容,此处详细解释一下:此处我们可以通过Notepad++去查看当前html页面的源码:
然后就可以看到源码了,然后设置语言为HTML后,就可以方便看到对应的语法高亮后的源码了,其中就可以看到对应的html的header中的
<meta http-equiv="content-type" content="text/html;charset=gb2312">
部分的内容:
注:关于Notepad++的使用,以及如何设置为默认的HTML编辑器,不熟悉的可参考:
Notepad++的默认HTML查看器
此处的
charset=gb2312
就是我们所要找的,html的字符编码类型。
如果我们按照此编码格式去解析html内容,就可以正常解析,不会出现乱码了。
注意:
1.之前就看到某处说过,有个别的html网页本身做的不规范,导致本身自己声明的是某种编码类型,但是实际上,并不全是该类型的编码,导致你去按照其所声明的编码去解析,有时候仍会出现乱码。
比如,其html中明明写的是charset=gb2312,但是实际上,其部分字符是属于GBK的,导致你按照gb2312去解码,有些字符仍会是乱码,而安装gbk去解码,就全都正常显示了,没有乱码了。
即实际上应该是charset=gbk。
对此,需要稍微注意一下。
注:关于gb2312,和gbk的关系,不了解的去看:
中文字符编码标准
常见的html的编码类型(即常见的html的charset的值有哪些)
国内的网站,尤其是以前建的,好像很多还是GB2312(charset=gb2312),或者是GBK(charset=gbk)但是越来越多的,都是采用兼容性更好的,包含字符更多的UTF-8编码的了(charset=utf-8)
国外的完整,如果只是某种语言的,比如英文的,好像也有采用iso8859-1的(charset=iso8859-1),同样,更多的网站,还是采用的是utf-8的。
相关文章推荐
- 关于HTML网页源码的字符编码(charset)格式(GB2312,GBK,UTF-8,ISO8859-1等)的解释
- [IT]HTML网页源码的字符编码(charset)解释
- 关于网页中编码gb2312,big5,gbk,utf-8识别的最新方法的探讨和c++的实现
- 各种字符编码详解(ascii,utf-8,unicode,gbk,gb2312,iso8859-1等)
- (转)详解HTML网页源码的charset格式
- 各种字符编码详解(ascii,utf-8,unicode,gbk,gb2312,iso8859-1等)
- 关于字符编码 GB2312,UTF-8,GBK,BIG5
- 各种字符编码详解(ascii,utf-8,unicode,gbk,gb2312,iso8859-1等)
- 关于ASP.NET网页上有部分文字乱码的问题,用utf-8还是用gb2312
- 各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)
- 各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)
- 各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)
- 转嘉士伯的Java小屋写的关于编码的文章(二)GB2312,GBK与中文网页
- 各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)
- 各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)
- 关于编码:ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS ...
- 各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)
- 字符编码简介(ASCII,ISOXXX,GB2312,GBK,UNICODE,UTF-8)
- 字符编码 Unicode, ANSI, GBK, GB2312,UTF-8,区位码,
- 各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)