剛剛從 Richyli 連到這篇文章的時候,發現畫面上都是亂碼。
看 IE 判斷網頁編碼為「西歐語系」,所以應該是誤判的緣故。
這個狀況已經有發生一段時間了,只要重新整理就正常了,所以一直沒去理他。今天仔細去測了一下,只有特定幾篇文章會發生這種狀況。
很明顯是瀏覽器的編碼誤判,這種狀況比較簡單的方法就是從 Apache 那邊做設定,可以修改 httpd.conf 或 .htaccess 的預設編碼。
如果網站放在虛擬主機,而且連 .htaccess 的權限都沒有的狀況下,就只能從網頁下手了。
先檢查網頁 HTML 是不是有下面這種狀況:
<html>
<head>
<title>[弱智媒體] 談網路香腸西施 - 林奕利 </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
這樣看起來好像沒什麼不對,UTF-8 也指定了,不應該會出現亂碼才是。
因為IE是逐行往下讀,第一個出現中文字的 Title 在指定編碼的 meta 之前,所以瀏覽器不得已只好從 Title 去猜這篇文章的編碼,所以一行錯就整頁錯。這時候只要把 charset 的 meta tag 移 <head> 內的最上方,讓 IE 一開始就知道這網頁是 UTF-8 編碼就可以解決這個問題了。
修改後的 HTML 變這樣:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>[弱智媒體] 談網路香腸西施 - 林奕利 </title>
</head>
解決後的畫面就正常了:
4 comments On 解決 IE 誤判編碼造成的亂碼
哇,原來是這麼回事。IE果然是比較弱智一點。
Firefox只要設定得當,就算一開始誤判編碼的話,一邊載入的時候還是會自動換成比較正確的編碼,成功率極高。手動改編碼的機率極低。
这种问题完全是因为coder的失误造成,不应该说IE弱智,如果严格按WEB标准写HTML,这种情况不会发生,而且Apache、PHP的charset根本没必要设置,只在HTML中声明编码即可。
呵呵,我也碰到這種問題
現在試試看
我用 IE7 測一定要用 ‘utf-8’ 唷, 用 ‘utf8’ 還是亂碼