UTF-8不能自动选择字符编码(iframe),页面输出空白

同事调试页面的时候发现如果IE没有选择自动编码,那么utf-8的有些页面会在IE下显示空白,即使你习惯性的加入了:<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />

产生原因:

utf-8用3个字节表示一个汉字,而普通的gb2312或big5是2个。而恰巧IE在解析网页编码时以HTML内的标签为优先,然后再会解析Header内的内容,但FF等其他浏览器相反。正因为这样,当Title里有奇数个全角字符时,IE把utf-8当作两个字节解析时出现半个汉字的情况,这时该半个汉字会和</title>的<结合成一个乱码字,导致IE无法读完<title>部分,使整个页面为空白输出。

解决方案:

实际上很简单,把<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />放在<title></title>的前面即可。

他们如何:

Google:

<meta http-equiv=content-type content=”text/html; charset=UTF-8″>
<title>这里是中文 – Google 搜索</title>

Yahoo:

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
<title>这里是中文_雅虎网页搜索</title>

posted @ 2011-08-16 11:32  jhti  阅读(1027)  评论(0编辑  收藏  举报