當設計的網頁使用UTF-8編碼時,明明用其它瀏覽器,如Firefox or Google Chrome都可以正常瀏覽,

但就是IE老是剛開始開進去空白一片,然後要自己手動設定選擇編碼才能正常瀏覽。

 

以上情形就算有寫以下的編碼格式聲明設定tag,IE也無法自動切換

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


但如火狐那些瀏覽器就能正常瀏覽,並不會有如IE 6的此類問題。

為何會這樣?

在此引用爬過的文章,依照內容所示:

出處:http://tw.myblog.yahoo.com/jw!NhSYS..BGBKJtVRYjNXX2esb7Q--/article?mid=1240

由於IE解譯網頁編碼時以HTML內的標籤優先,而後才是HTTP header內的訊息、

而mozilla系列的流覽器則剛剛相反。

由於UTF-8為3個位元組表示一個漢字,而普通的GB2312BIG5是兩個。頁面輸出時,由於上述原

因,使瀏覽器解析、輸出<title></title>的內容時,如果在</title>前有奇數個全形字符

時輸出的內容時,IE把UTF-8當作兩個位元組解析時出現半個漢字的情況,這時該半個漢字會和

</title><會結合成一個亂碼字,導致IE無法讀完<title>部分,使整個頁面為空白輸出。


看到這邊,心里有底了!!

解決方式應當很簡單,依照上面文意可以推出以下結論

原本會出問題的寫法:
<title>會出問題喔</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" / 

正確的寫法應改成:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>不會出問題</title>


試驗過了之後,真的如此!!

解決方法就是把<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

寫在<title></title>前面就可以了。

創作者介紹

毛哥資訊日誌

AwEi 發表在 痞客邦 PIXNET 留言(2) 人氣()


留言列表 (2)

發表留言
  • lambert
  • 您好,我也遇到這個問題,
    但是試過您的方法後還是不行,
    可以麻煩您幫我看一下嗎?
    http://web.it.nctu.edu.tw/~polymer/members-main.html
    http://web.it.nctu.edu.tw/~polymer/news.html
  • lambert 您好:
    檢查了一下您 HTML 語法後,發現此錯誤並非是因為<title>標籤位置錯誤的問題
    而是因為您的 HTML 框架與法錯誤造成(<frameset>)

    您在語法上有多餘的框架結構宣告
    您的語法:
    <frameset rows="223,*" frameborder="yes" border="5" framespacing="5">
    <frameset cols="*" frameborder="yes" border="5" framespacing="5">
    <frame src="http://web.it.nctu.edu.tw/~polymer/members-top.html" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
    </frameset>
    <frameset cols="*" frameborder="yes" border="5" framespacing="5">
    <frameset rows="*" framespacing="5" frameborder="yes" border="5">
    <frameset cols="151,*" framespacing="5" frameborder="yes" border="5">
    <frame src="http://web.it.nctu.edu.tw/~polymer/members-left.html" name="leftFrame" scrolling="yes" noresize="noresize" id="leftFrame" title="leftFrame" />
    <frame src="http://web.it.nctu.edu.tw/~polymer/members.htm" name="mainFrame" id="mainFrame" title="mainFrame" marginwidth="1" scrolling="auto" />
    </frameset>
    </frameset>
    </frameset>
    </frameset>

    應修改為

    <frameset rows="223,*" frameborder="yes" border="5" framespacing="5">
    <frame src="http://web.it.nctu.edu.tw/~polymer/members-top.html" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
    <frameset cols="*" frameborder="yes" border="5" framespacing="5">
    <frameset rows="*" framespacing="5" frameborder="yes" border="5">
    <frameset cols="151,*" framespacing="5" frameborder="yes" border="5">
    <frame src="http://web.it.nctu.edu.tw/~polymer/members-left.html" name="leftFrame" scrolling="yes" noresize="noresize" id="leftFrame" title="leftFrame" />
    <frame src="http://web.it.nctu.edu.tw/~polymer/members.htm" name="mainFrame" id="mainFrame" title="mainFrame" marginwidth="1" scrolling="auto" />
    </frameset>
    </frameset>
    </frameset>
    </frameset>

    以上

    AwEi 於 2012/10/08 21:03 回覆

  • lambert
  • 太感謝您了!!
    修改後,IE就可以正常開啟了
    為了這問題我爬了好多文都無解
    謝謝您幫我找到問題