IE中打开UTF-8编码网页显示空白问题

No Comments

原文见:http://yskin.net/2006/08/ie-utf-8-bug.html

这篇文章分析得比较透彻。根据它分析的步骤,浏览器在解析网页时,首先要进行解码。而它获取网页编码方式的顺序是这样的:

  • 首先通过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>标签中设置。

Leave a Reply

SEO Powered by Platinum SEO from Techblissonline