apache 編碼設置解決

在windows操做系統上使用IE做爲瀏覽器時。經常會發生這樣的問題:在瀏覽使用UTF-8編碼的網頁時,瀏覽器沒法自動偵測(即沒有設定「自動選擇」編碼格式時)該頁面所用的編碼。即便網頁已經聲明過編碼格式:

php

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
,由此形成某些含有中文UTF-8編碼的頁面產生空白輸出。html

若是使用的是Mozilla、Mozilla Firefox、Sarafi的瀏覽器這不會形成這個問題。這是因爲IE解析網頁編碼時以HTML內的標籤優先,然後纔是HTTP header內的訊息;而mozilla系列的瀏覽器則剛剛相反。windows

因爲UTF-8爲3個字節表示一個漢字,而普通的GB2312或BIG5是兩個。頁面輸出時,因爲上述緣由,使瀏覽器解析、輸出<title></title>的內容時,若是在</title>前有奇數個全角字符時,IE把UTF-8看成兩個字節解析時出現半個漢字的狀況,這時該半個漢字會和</title>的<結合成一個亂碼字,致使IE沒法讀完<title>部分,使整個頁面爲空百輸出。而這個時候若是察看源文件的話,會發現實際上整個葉面所有已經輸出了。瀏覽器

所以最簡單的解決辦法是再網頁文件的<head></head>標籤中必定要把字符定義<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
放在<title></title>以前。服務器

ps:涉及到編碼問題的方式網站

1. 服務器httpd.conf文件:AddDefaultCharset UTF-8
這種方法不推薦,由於服務器上極可能有其餘編碼的網站存在,因此可使用AddDefaultCharset off來關閉默認文件編碼,服務器依靠html文件投中設置的語言來決定編碼。ui

2. 腳本php.ini文件:default_charset = "UTF-8" 
做用同httpd.conf文件,也不推薦,能夠把該行註釋掉,緣由同上編碼

3. .htaccess文檔:AddDefaultCharset UTF-8
通常人都沒法修改httpd.cnf和php.ini,同時也不推薦修改這兩個文件。這時也能夠在網站根目錄下寫入.htaccess文檔,在該文檔中設定網站字符集操作系統

網頁文件字符集:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />htm

 

-----------------------------------------------------------------------------

 

 

 

相關文章
相關標籤/搜索