MySQL之 utf8 處理

本站自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 473 times, 1 visits today)

在〈MySQL之 utf8 處理〉中有 4 則留言

發佈留言