[IT]HTML网页源码的字符编码(charset)解释
2014-12-29 19:57
302 查看
当你通过浏览器,打开某个网站,即某个url地址的时候,你所能正常看到网页的内容,各种文字,都可以正常显示,且没有显示乱码。
此过程,涉及到,浏览器帮你正确解析HTML源码,其中涉及到HTML网页源码的字符编码处理方面的问题。
和字符编码处理相关的大概逻辑是:
1.浏览器访问对应的url地址,并获取对应的HTML(或者,以及,其他的css,javascript等)网页源码
2.浏览器识别解析HTML源码内容
其中包含了解析HTML的头部(head),找到对应的charset和Content-type
head中把Content-type设置为“text/html”。head让浏览器将该响应内容以HTML形式呈现,而不是以文件形式下载它。
然后把根据charset所指示的字符编码类型,去解码对应的HTML内容,显示对应的文字,以保证不是乱码,可以正确的显示文字信息;
举个例子:
当我们通过浏览器,去打开对应的url地址:http://sports.sohu.com/
浏览器可以正常显示对应网页内容:
而此时内部发生的过程是:
1.浏览器去访问url地址:http://sports.sohu.com/ 去获得对应的HTML源码。(中间很有很多处理过程,省略,具体参考:当你在浏览器地址栏输入一个URL后回车,将会发生的事情?)
2.然后解析HTML源码并显示给用户
其中包括了解析HTML的head,知道content=text/html,charset=gb2312,然后用gb2312编码格式去解码,HTML形式呈现,然后就可以正常显示HTML中的内容,确保不是乱码了。
上面截图就是网页源代码,我们可以很清楚的看到我们要的信息。
注意:
1.之前就看到某处说过,有个别的html网页本身做的不规范,导致本身自己声明的是某种编码类型,
但是实际上,并不全是该类型的编码,导致你去按照其所声明的编码去解析,有时候仍会出现乱码。
比如,其html中明明写的是charset=gb2312,但是实际上,其部分字符是属于GBK的,导致你按照gb2312去解码,有些字符仍会是乱码,
而安装gbk去解码,就全都正常显示了,没有乱码了。即实际上应该是charset=gbk。
常见的HTML编码类型:
国内的网站,尤其是以前建的,好像很多还是GB2312(charset=gb2312),或者是GBK(charset=gbk)
但是越来越多的,都是采用兼容性更好的,包含字符更多的UTF-8编码的了(charset=utf-8)
国外的完整,如果只是某种语言的,比如英文的,好像也有采用iso8859-1的(charset=iso8859-1),同样,更多的网站,还是采用的是utf-8的。
总结:
国内外的多数网站,都是采用charset=utf-8
部分国外网站采用charset=gb2312或charset=gbk
部分国外网站采用某种自己所属语言的编码,比如charset=iso8859-1
此过程,涉及到,浏览器帮你正确解析HTML源码,其中涉及到HTML网页源码的字符编码处理方面的问题。
和字符编码处理相关的大概逻辑是:
1.浏览器访问对应的url地址,并获取对应的HTML(或者,以及,其他的css,javascript等)网页源码
2.浏览器识别解析HTML源码内容
其中包含了解析HTML的头部(head),找到对应的charset和Content-type
head中把Content-type设置为“text/html”。head让浏览器将该响应内容以HTML形式呈现,而不是以文件形式下载它。
然后把根据charset所指示的字符编码类型,去解码对应的HTML内容,显示对应的文字,以保证不是乱码,可以正确的显示文字信息;
举个例子:
当我们通过浏览器,去打开对应的url地址:http://sports.sohu.com/
浏览器可以正常显示对应网页内容:
而此时内部发生的过程是:
1.浏览器去访问url地址:http://sports.sohu.com/ 去获得对应的HTML源码。(中间很有很多处理过程,省略,具体参考:当你在浏览器地址栏输入一个URL后回车,将会发生的事情?)
2.然后解析HTML源码并显示给用户
其中包括了解析HTML的head,知道content=text/html,charset=gb2312,然后用gb2312编码格式去解码,HTML形式呈现,然后就可以正常显示HTML中的内容,确保不是乱码了。
上面截图就是网页源代码,我们可以很清楚的看到我们要的信息。
注意:
1.之前就看到某处说过,有个别的html网页本身做的不规范,导致本身自己声明的是某种编码类型,
但是实际上,并不全是该类型的编码,导致你去按照其所声明的编码去解析,有时候仍会出现乱码。
比如,其html中明明写的是charset=gb2312,但是实际上,其部分字符是属于GBK的,导致你按照gb2312去解码,有些字符仍会是乱码,
而安装gbk去解码,就全都正常显示了,没有乱码了。即实际上应该是charset=gbk。
常见的HTML编码类型:
国内的网站,尤其是以前建的,好像很多还是GB2312(charset=gb2312),或者是GBK(charset=gbk)
但是越来越多的,都是采用兼容性更好的,包含字符更多的UTF-8编码的了(charset=utf-8)
国外的完整,如果只是某种语言的,比如英文的,好像也有采用iso8859-1的(charset=iso8859-1),同样,更多的网站,还是采用的是utf-8的。
总结:
国内外的多数网站,都是采用charset=utf-8
部分国外网站采用charset=gb2312或charset=gbk
部分国外网站采用某种自己所属语言的编码,比如charset=iso8859-1
相关文章推荐
- 关于HTML网页源码的字符编码(charset)格式(GB2312,GBK,UTF-8,ISO8859-1等)的解释
- 关于HTML网页源码的字符编码(charset)格式(GB2312,GBK,UTF-8,ISO8859-1等)的解释
- (转)详解HTML网页源码的charset格式
- 网页制作html的基本解释与操作(三)
- 网页制作html的基本解释与操作(四)
- 一个可以查看HTML网页上密码框的程序(附源码)
- C# 抓取网页Html源码 (网络爬虫)(转)
- c# 去除网页源码中的HTML标记
- C#实现下载网页HTML源码的方法
- 网页制作html的基本解释与操作(二)
- 写个java类,可以直接得到网页内容中的html源码
- C#获取网页HTML源码实例
- 从TWebBrowser得到网页源码及Html
- C#获取网页源代码,去除html标签,提取文字源码
- 使用C#获取网页HTML源码的例子
- 源码变换 超文本标记语言(即HTML),是用于描述网页文档的一种标记语言。 HTML通过文本来描述文档显示出来应该具有的“样子”。它主要通过标签来定义对象的显示属性或行为。
- 读取网页上的Html源码中指定的数据写入文件
- 如何用VC中的CHtmlView取得网页的HTML源码
- 根据Url地址得到网页的html源码,截取网站信息的核心程序
- C# 抓取网页Html源码 (网络爬虫)