2008/07/02

wordpress-latin1轉utf8_general_ci

原理是先把wordpress database 從mysql dump出來,
然後將之轉成utf8之後,再塞回去database。

1.把wordpress database dump出來
mysqldump -u [database user] -p [wordpress database] > wp.sql
(不知道為什麼,我從phpmyadmin export出來的檔案,中文部分仍是latin1的亂碼。
但是在linux下用上述指令dump出來的檔案,就自動轉成utf8編碼了)

2.利用字串取代的方式,將wp.sql中的latin1全都置換成 utf8
我是利用vim來做字串替換, 指令如下:
:0,$s/latin1/utf8/g

3.將原本的wordpress database更名(或移除),開新一個wordpress database,
並將collation設為utf8_general_ci

4.再來在/etc/mysql/my.cnf 的 [mysqld] 區塊中,(這裡感謝godwalking指點)
檢查是否有 init_connect='SET NAMES utf8' 這行指令,沒有便加上。

5.利用phpmyadmin import的方式,把wp.sql塞回去wordpress database,
或利用指令 mysqldump -u [database user] -p [wordpress database] < wp.sql
便大功告成了,如此wordpress database的中文就是正常的utf8編碼了。


reference:
完整紀錄 wordpress 資料庫編碼 從 latin1 到 utf8 過程
用 mysqldump 備份還原 WordPress

No comments:

Post a Comment