这篇文章分析得比较透彻。根据它分析的步骤,浏览器在解析网页时,首先要进行解码。而它获取网页编码方式的顺序是这样的:
* 首先通过Header获取编码信息,如果有写明charset的话就认定页面的编码方式为charset指定的值。如果没有指明,则认定为默认值;
* 然后,浏览器会检测是否有BOM。一旦发现有UTF-8的3字节BOM,则重新认定页面的编码方式为UTF-8;
* 解码完成后是解析html的阶段。解析html的过程中,当解析到head部分的meta标签时,浏览器会根据<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />这个语句中的说明,重新认定编码方式为charset后面的方式,中断html解析过程,返回到解码步骤重新解码。
因此,当php网页文件编码为utf-8时,最好先确保没有BOM(存在这三字节隐形的家伙一般会造成意想不到的影响),然后只要用header()函数设置一下编码方式header(”Content-Type: text/html; charset=UTF-8″)即可,不必再在<meta>标签中设置。
本站技术交流群:24735919,欢迎大家进群交流探讨!
近期评论