浏览器确定html文件编码的优先级

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

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

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

BOM(Byte Order Mark)参考: https://baike.baidu.com/item/BOM/2790364

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

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

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

详细资料:

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

猜你喜欢

转载自blog.csdn.net/lishuoboy/article/details/84038058