浏览器是如何确定html文件编码的?

前段时间学习web知识,开始以为浏览器对html的解码是按标签<meta>中指定的字符集进行解码的,但是仔细想想发现又存在问题,因为要知道<meta>中指定的字符集,必须先对html文件进行解码,但事先是不知道编码的。于是在网上找了些资料(见附录)。发现浏览器对html文件编码的确定过程还是很复杂的。编码的确定按优先级如下:

1.如果用户指定了编码,则按用户指定的编码进行解码。

2.先对文件进行预解析,如果文件存在BOM(Byte Order Mark),则按BOM确定的编码解码。

3.如果HTTP响应头中存在编码信息,则按响应头中的编码进行解码。

4.先按浏览器的编码选择算法选择一个编码进行预解析,如果解析出<meta>标签中存在字符集设置,则按<meta>标签中的字符集进行解码。

5.按浏览器的默认编码。


详细资料:

http://stackoverflow.com/questions/14934953/web-page-encoding-with-contradictory-settings

http://www.w3.org/html/wg/drafts/html/master/syntax.html#determining-the-character-encoding

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值