您的位置:首页 > Web前端 > HTML

关于HTML网页源码的字符编码(charset)格式(GB2312,GBK,UTF-8,ISO8859-1等)的解释

2015-03-22 13:55 459 查看
当你通过浏览器,打开某个网站,即某个url地址的时候,你所能正常看到网页的内容,各种文字,都可以正常显示,且没有显示乱码。

此过程,涉及到,浏览器帮你正确解析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的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python