wpl12
高级会员

初级会员
UID 68911
精华
0
积分 815
帖子 547
金钱 815 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2006-2-27
状态 离线
|
[推荐阅读] 有一个数组的新手问题请大家帮忙,都进来看看
UTF-8 编码网页一片空白的问题
--------------------------------------------------------------------------------
就刚才,我遇到了一个奇怪的现象,编辑了自己的首页以后,打开IE浏览器,显示居然是一片空白,查看源文件又是正常无误。百思不得其解,测试了半个小时,终于查出原因所在。
用下面这段HTML代码作为内容建立一个文件,存为test.html
HTML 代码:
<html>
<head>
<title>新</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p>测试</p>
</body>
</html>
用IE浏览器打开浏览,显示空白。再测试:
改动标题为英文单字,显示正常
改动标题为其它汉字,有的行,有的正常,有的不正常,比如“中华人民共和国”作标题就不正常
删除meta标签,显示正常
把title标签和meta标签交换位置,显示正常
把utf-8改为gb2323,显示正常
改用Mozilla Firefox浏览这个文件,显示又正常
于是,估计就是utf-8编码的问题,而且是与IE有关系。
我碰到莫名其妙的问题,习惯上会去网上查找一下相关信息,一找,果真找到了这样一篇博客文章,跟我碰到的情况一模一样,人家2004年5月就碰到这个问题了,而且作了一些分析。现摘录如下,以作备忘。(作者网址:http://zonble.twbbs.org/archives/2004_05/485.php)
引用:
作者: zonble
如果使用的是Mozilla、Mozilla Firefox、Sarafi等其他目前流行的瀏覽器,通常就不會有這樣的問題。
如果您在Windows作業系統上,使用Internet Explorer瀏覽器的話,往往會出現這樣的狀況:在瀏覽使用UTF-8編碼製作的中文網頁時,瀏覽器並不能夠自動偵測網頁的編碼方式,從原本預設的語系編碼(例如Big5正體中文等),切換成改以UTF-8編碼,結果畫面上就是一片空白,什麼都沒有,即使在網頁當中,已經加上了特別標明內文語系的metadata標籤:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
在Internet Explorer中,還是沒有辦法正常處理。
我之前也遇過這樣的狀況,在做了一些嘗試之下,發現有個方法可以解決這樣的問題,那就是,在網頁的<head>到</head>當中的檔頭部份,調整一下各種<meta>標籤在檔案中的順序。如果說,在<head>當中,排在最前面的是像網頁標題標籤<title></title>,當中就出現了UTF-8中文,就很容易造成在瀏覽器中畫面一片空白,我在想,或許是因為Internet Explorer會一開始就用預設的語系解讀、分析網頁,而在標題的地方遇到UTF-8字元,就解讀錯誤,而不會繼續往下讀,讀到meta標籤,讀出這個網頁是以UTF-8編碼。
所以,在</head>的部份,把”Content-Type”放在最前面,便可以解決這樣的問題了。
另一个回响也摘录如下 (作者网址:http://www.soulogic.com/)
引用:
作者: Platinum
是这样,UTF-8 是三个字节一个汉字,而普通的 BIG5 是两个,结果把 UTF-8 当成 BIG5 解析的时候会出现一个半汉字的情况,而那半个汉字会和 </title> 的 < 结合成一个乱码字,导致 IE 无法读完 <title> 部分,整个页为空
出现这种情况的条件是 </title> 之前有连续的奇数个全角字符
结论
碰到这种情况,只要把<meta...utf-8>标签放到<title>标签前面即可,这样,当IE读取网页时,会先读取meta,知道网页是以utf-8编码,会以utf-8来decode,再读<title>时,就不会傻了 (乱码或者不显示)。
|
|