最近幾天再做平台遷移,同樣的系統配置,只是把程式移到稍好的伺服器上。問題出來了,所有web頁面上的中文都是亂碼,我勒個去的。搞了一夜,終於搞定。
中間走了很多彎路,網上都說,修改http.conf中參數,在再web頭部添加指定字元集編碼,媽呀,這個工程大多了,我網站是產生靜態頁面的。靠,每個檔案都要修改,要死人的。
還按照網上一些高手所說,查看檔案的編碼方式,下載了編碼探測/轉換工具,這個工具很不錯,但不能解決這個問題,:
http://www.sourcefiles.org/Networking/Tools/Miscellanenous/enca-1.9.tar.bz2http://freebsd.unixfreunde.de/sources/enca-1.9.tar.bz2
利用網上參考資料,企圖解決亂碼問題,嘗試過以下多種指令,都不可以,崩潰了。
AddDefaultCharsetGB2312
DefaultLanguagezh-cn
AddDefaultCharsetnone
AddDefaultCharsetOff
AddLanguagezh-cn.cn
AddCharsetgb2312.html
AddCharsetgb2312.htm
經過分析,應該是由於預設的瀏覽目錄方式是由Apache產生index檔案的,因為只能在產生前設定編碼。最後查看apache官方文檔,發現ApacheModulemod_autoindex模組。這裡面有字元集的設定方法,IndexOptions竟然也有一個關於編碼的設定,Charset=character-set。看到這裡,蛋疼的一比。
到這裡,問題就好解決了,用瀏覽器開啟網站(還是亂碼)-->右鍵(編碼設定)一個一個試字元集,到我試到GB2312時,開心呐,亂碼消失;修改httpd.conf把這句前面注釋幹掉Includeconf/extra/httpd-autoindex.conf;在httpd-autoindex.conf加入
IndexOptionsCharset=GB2312
重啟apache,一切正常。。。。。。。