很久沒寫php了今天在用時突然了其怪的亂碼錯誤重現是我驚詫莫名啊!,下面來看看我的排查方法,給碰到相同問題的朋友一個參考。
有一個很久的工程今天要莫名其妙的重新啟動了,這個工程是xampp的環境——不知道xampp?你Google一下吧,這個我不多說了。
一開始輕車熟路,apahce配置,php配置……一路下來沒有任何問題。開始訪問吧,問題就來了,很奇怪預料之中可以運行的頁面,卻出了個預料之外的亂碼問題。
第一個想到的是,apache的缺省字符集,於是在apache的語言擴展配置文件中加入:
AddDefaultCharset UTF-8
我的網站頁面是utf-8的哦,重新啟動並沒有預想之中的起到作用——也就是沒有作用啦!多方努力都沒有作用,就這樣在httpd.conf上浪費了半個小時。開始郁悶……
半個小時過去了,抽了一支煙,想到phpinfo可能能夠幫上忙哦,於是打開phpinfo一看,立即驚呆了。在HTTP Response Headers一欄下的 Content-Type 項中赫然出現了:text/html gbk字樣,我神呢——,為啥是gbk呢。於是重新查找各項設置,httpd.conf沒有,各項擴展裡面都沒有這個gbk的東東……
郁悶中……
php.ini,這是總算找到了,不知道哪個鳥人狂賤的把這個地方的設置打開了,並且還不是正確的,哪個地方?
default_charset = “gbk”
就這個地方,害死老子哦!於是修改成:
default_charset = “UTF-8″
重啟,一切正常了!但是咱們也不能害人不是,想著去掉看看可以不,去掉之後一切還是正常的——頁面顯示編碼控制權重新回到了頁面本身。