IE瀏覽器開啟明明有內容的網頁卻顯示空白頁問題

encienqi發表於2011-02-14

在做一些以UTF-8為編碼的網站時,有時候用IE瀏覽器開啟這個網站會顯示一個空白頁面,其餘的就什麼也沒有了,但是在檢視網站原始檔時你會發現,網站程式碼已經全部載入了,只是沒有在前臺顯示出來而已,即便是你已經在網站程式碼中用“<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />”宣告瞭編碼格式,這種問題有時也會出現,造成這種問題的的原因就是編碼問題造成的,既然有這些問題的存在我們在製作網站時為什麼還要用UTF-8編碼呢?下面部落就從UTF-8編碼的起源開始講起,在最後再給出解決這個問題的方法。

  什麼是UTF-8編碼

  UTF8 是(UNICODE八位交換格式)的簡稱,UNICODE是國際標準,也是ISO標準10646的等價標準。UNICODE編碼的檔案中可以同時對幾乎所有地球上已知的文字字元進行書寫和表示,而且已經是UNIX/LINUX世界的預設編碼標準。

  UTF-8是世界通用的語言編碼,UTF-8的推廣要歸功於Google的應用,以及Blog開發者。而如果用Windows XP英文版的IE6.0瀏覽gb2312語言編碼的網頁,則會提示是否安裝語言包。因此,可能會失去很多的國外瀏覽者。

  UTF-8編碼的好處

  網頁使用UTF-8編碼的好處是,無論您的作業系統的使用語言是簡體中文(GB2312字符集)、繁體中文(BIG5字符集)或者是朝鮮文、日文、法文、德文、俄文、阿拉伯文、希伯來文、西班牙文、葡萄牙文等各種語言文字,您在使用這些語言文字,都可以正常顯示在網頁中,其它任何人瀏覽時都會正常顯示,不會有亂碼,不會有重碼和字元衝突,不需要調整頁面的語言編碼設定即可正常瀏覽,多種語言字元可以同時共存在頁面上,所以為了網站的通用性起見,用UTF8編碼是更好的選擇。

  IE開啟UTF-8編碼網站顯示空白頁問題解決

  由於UTF-8為3個位元組表示一個漢子,而普通的GB2312或BIG5是兩個。頁面輸出時,由於上述原因,使瀏覽器解析、輸出<title> </title>的內容時,如果在</title>前有奇數個全形字元時,IE把UTF-8當作兩個位元組解析時出現半個漢字的情況,這時該半個漢字會和</title>的<結合成一個亂碼字,導致IE無法讀完<title>部分,使整個頁面為空百輸出。而這個時候如果察看原始檔的話,會發現實際上整個頁面全部已經輸出了。

  其實解決這個問題的方法有很多,但是最簡單的辦法是:

只要將“<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />”這段編碼宣告放到<title></title>之前就可以了。

  下面我們以一個表格的形式來說明一下不同編碼在IE6和火狐瀏覽器中顯示形式:

編碼 IE6 Firefox火狐 GBK 正常 正常 UTF-8(no BOM) 空白頁 使用GBK解碼形成亂碼 UTF-8(BOM) 正常 正常 GBK 使用UTF-8解碼形成亂碼 使用UTF-8解碼形成亂碼 UTF-8(no BOM) 正常 正常 UTF-8(BOM) 正常 正常 GBK 使用UTF-8解碼形成亂碼 使用UTF-8解碼形成亂碼 UTF-8(no BOM) 空白頁 正常 UTF-8(BOM) 正常 正常

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/num6/archive/2009/05/10/4166076.aspx

相關文章