本站自2005年3月16日以Wordpress 1.5建站以來,雖然系統一直可以正常運作,但當使用資料庫管理套件,如phpmyadmin,進入管理資料庫瀏覽資料時,會發現中文都是亂碼。不過既然系統可以正常運作,就先放著不管它…這一放就放了6年。
星期天心血來潮,又看到Wordpress 3.1.3更新,順便想解決上面講的問題,上網研究原來是因當初MySQL安裝時未注意系統的預設編碼是latin1,而Wordpress使用utf8編碼,亂碼的現象就是utf8的文字以latin1形式儲存,phpmyadmin讀出來的資料顯示錯誤。解決phpmyadmin讀出亂碼是把資料庫的編碼轉成utf8,步驟:
- 先匯出資料,使用MySQL的工具:
mysqldump -u root -p wpblog > wpblog.sql --default-character-set=latin1
(root是使用者名稱,wpblog是Wordpress資料庫名稱) - 使用emEditor(支援utf-8的編輯器)把wpblog.sql 打開,用取代的功能把所有的latin1都取代成utf8,之後直接另存新檔wpblog-utf8.sql,把檔案類型設定儲存成unsigned UTF-8。
- 匯入資料:
mysql -u root -p wpblog < wpblog-utf8.sql --default-character-set=utf8
沒有錯誤訊息出現就成功了。
此時用phpmyadmin,可以正確顯示中文,Wordpress 3.1.3也可以正確顯示中文。
但是原來使用的Wordpress 2.1.3 跟 3.1.3 (剛好差了一大版本),畢竟版本差太多,試用了一下3.1.3,很多外掛插件(plugin)無法延用,基於省事心態,打算還是用2.1.3就好,想不到使用Wordpress 2.1.3時竟不會正確顯示中文,所有文章全都是問號????,真是傻眼,由於是線上系統,試了將近一小時,也就是本站顯示了一小時的問號,無法使Wordpress 2.1.3顯示更改過編碼的文章,原因?不知。還好Wordpress 3.1.3是正常的,雖身處冷氣房內,還是嚇出一身冷汗。
本站只好意外升級Wordpress 3.1.3,plugin再慢慢更正吧。
(Visited 495 times, 1 visits today)
哈哈。終於混不下去了吧。
偷偷告訴你,你的 2.1.3 亂碼大概是我以前碰到的問題: http://www.ju-ju.com/2006/07/29/wp-204
看了你以前碰到的問題,跟我不一樣。我的2.1.3跟3.1.3用的都是同一個php.ini,所以裡面的設定是一樣的。編碼真是很難懂的一門學問。
Pingback: 幾個好用的WordPress外掛(plugin) – 精神奕奕
Pingback: 升級Wordpress 3.2,又出問題