我们使用IE还有TT等浏览器中打开UTF-8编码或者GB2312编码的网页,但title为中文的时候,网页会显示空白页,这个问题经常出现。
解决办法:
将类似如下的说明放在title之前:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>谷多的一亩田,一亩田的谷多</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>谷多的一亩田,一亩田的谷多</title>
至于为啥要这样,可以这样简单理解:
一般浏览器需要抓取完整页面后再对页面进行解析,但解析之前需要知道页面的编码方式。
如果Content-Type放在title之后,而title之中已经有汉字这类文字,极其容易使浏览器解析时出现半个汉字的情况造成乱码,对整个html页面的DOM结构造成破坏,后面定义的charset根本无法正确解析,进而无法正确解析整个页面。
如果你现在的页面虽然没这样写但浏览器比如IE仍然可以正确解析,不是因为你的页面规范,而是因为浏览器默认使用了GB2312或者正确的编码进行了页面解析,碰到默认编码不匹配的浏览器,出现空白页面或者乱码就再正常不过了。
--EOF--
Leave a comment