關(guān)于Apache的AddDefaultCharset的問(wèn)題
上周飛龍新版上線(xiàn)的時(shí)候,出現(xiàn)了一個(gè)問(wèn)題由于原來(lái)的頁(yè)面是用的GBK編碼的。新版的面頁(yè)使用了utf-8編碼的。晚上部署的時(shí)候發(fā)現(xiàn)utf-8編碼的全部都成亂碼了。這個(gè)亂碼是因?yàn)闉g覽器用gbk解析utf-8的網(wǎng)頁(yè)的。手動(dòng)選擇一下用utf-8編碼就正常的了。剛開(kāi)始還以為是utf-8頁(yè)面的問(wèn)題??磆tml源碼。里面有utf-8的頭申明??磈sp里面也有的。為什么Apache就是不用utf-8發(fā)送給瀏覽器呢?
后來(lái)找到httpd.conf.發(fā)面里面的AddDefaultCharset設(shè)置的是
AddDefaultCharset=GBK
沒(méi)辦法先修改成UTF-8試試
AddDefaultCharset=UTF-8
這樣的話(huà)utf-8的頁(yè)面好了??墒莋bk的又不行了。真是怪了。后來(lái)發(fā)現(xiàn)把這個(gè)設(shè)置成off就可以了。
AddDefaultCharset=off
一查Apache的參考手冊(cè),原來(lái)是這樣的。
AddDefaultCharset 指令
說(shuō)明 | 當(dāng)應(yīng)答內(nèi)容是text/plain 或text/html 時(shí),在HTTP應(yīng)答頭中加入的默認(rèn)字符集 |
---|---|
語(yǔ)法 | AddDefaultCharset On|Off|charset |
默認(rèn)值 | AddDefaultCharset Off |
作用域 | server config, virtual host, directory, .htaccess |
覆蓋項(xiàng) | FileInfo |
狀態(tài) | 核心(C) |
模塊 | core |
當(dāng)且僅當(dāng)應(yīng)答內(nèi)容是text/plain
或text/html
時(shí),此指令將會(huì)在HTTP應(yīng)答頭中加入的默認(rèn)字符集。理論上這將覆蓋在文檔體中通過(guò)<meta>
標(biāo)簽指定的字符集,但是實(shí)際的行為通常取決于用戶(hù)瀏覽器的設(shè)置。AddDefaultCharset Off
將會(huì)禁用此功能。AddDefaultCharset On
將啟用Apache內(nèi)部的默認(rèn)字符集iso-8859-1
。您也可以指定使用在IANA注冊(cè)過(guò)的字符集名字中的另外一個(gè)charset 。比如說(shuō):
AddDefaultCharset utf-8
AddDefaultCharset
只 應(yīng)當(dāng)在如下情況下使用:所有文本資源都使用同一種確定的字符集,且分別標(biāo)記他們的字符集非常麻煩。一個(gè)這樣的例子是向包含動(dòng)態(tài)內(nèi)容的資源中添加字符集參數(shù) (比如先前遺留的CGI腳本),這樣可能會(huì)因?yàn)樵谳敵鲋邪脩?hù)提供的數(shù)據(jù)而導(dǎo)致跨站點(diǎn)腳本攻擊。但是請(qǐng)注意:更好的解決辦法是修改或刪除這些腳本,因?yàn)?設(shè)置了默認(rèn)的字符集以后將會(huì)使得瀏覽器的字符集自動(dòng)探測(cè)功能失效。
posted on 2011-02-10 10:11 強(qiáng)強(qiáng) 閱讀(2008) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): web技巧