星期四, 11月 22, 2007

Wordpress 2.3.1 中文顯示為???問題

最近在測試把部落格從Blogger帳號移動到Wordpress架構上,要把現有的Blogger的Post貼文跟Comments評論移動過去並不是問題,有現成的Import功能可以做到,不過依開始碰到了中文顯示的問題。
後來發現是資料庫設定上的問題,一開始在Wordpress根目錄下的wp-config.php檔案中,預設的設定是:
define('DB_CHARSET', 'utf8');
但是中文輸入之後都變成一堆問號,並非編碼有誤時無法顯示的亂碼,似乎表示資料庫本身與這些中文的編碼不相容,本來想說應該放在通用的UTF-8應該沒問題,改了很多其他的設定,後來實在測試不出來是什麼問題,索性把這個設定改為:
define('DB_CHARSET', 'big5');
沒想到後來居然就可以正確儲存中文了,所以在此跟大家分享一下解決辦法。

不過雖然可以正確儲存了,不過卻發現有時候瀏覽器的預設編碼不一定正確,後來又再玩了一下跟找了我Hosting上面的支援資料之後,做了一些顯示問題的調整才順利正常顯示,這一個顯示問題是跟php.ini有關的,原來在php.ini檔案中的設定是:
;default_charset = "iso-8859-1"
前面有";"也就是說並沒有實際設定了一個預設的編碼,所以我猜也許這就是讓它跟著主機本身的編碼設定走。
我後來是把這行改成:
default_charset = "UTF-8"
然後就可以正常顯示中文了。

但有一點我覺得奇怪的是,資料庫設定要設成BIG-5才能夠儲存中文,不能用UTF-8。不過當我將瀏覽器的編碼改成"BIG-5"的時候,反而變成亂碼,要設定成"UTF-8"才可以顯示,這點我就覺得有點納悶,難道是資料庫或是伺服器在儲存中文的過程中會自己把BIG-5的文字轉換為UTF-8的編碼?

這就要看看有沒有比較厲害的人士來解答囉~

1 則留言:

匿名 提到...

我现在遇到的也是这个问题
更换了服务器后
导航栏个别中文变成了问好
不知道应该如何解决...