原理是先把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
2008/07/02
wordpress-latin1轉utf8_general_ci
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment