WordPress 的 Database 與 UTF-8
平常我都是跟 SVN 的 WordPress 在用,偶而去 svn update,但也沒在注意他到底更新的什麼。
今天心血來潮比對了一下 wp-config.php 跟 wp-config-sample.php 發現多了幾個 MACRO 不一樣,其中有兩個是這樣
用 phpMyAdmin 去看資料庫,忽然發現 Db 用的 charset 全都是 latin1_swedish,雖然在 WordPress 上看是正常的,但是直接看 Database 的話卻都是亂碼。
這已經是很久以前的問題了,但那時候我沒有玩 Blog :p 既然剛好發現,那就順便修一修,以免以後要備份或搬家的時候掛掉。
這邊是大神的慘痛經驗,這邊看了大神犯的錯誤以後當然要小心別犯了同樣的錯。
我的作法是
另外一邊再找資料的時候發現 WordPress 2.2 將完全支援 UTF-8 ,雖然 2.2 還沒出,這應是我用 SVN 遇到的搶先試用功能吧。
今天心血來潮比對了一下 wp-config.php 跟 wp-config-sample.php 發現多了幾個 MACRO 不一樣,其中有兩個是這樣
define(’DB_CHARSET’, ‘utf8′);
define(’DB_COLLATE’, ”);
用 phpMyAdmin 去看資料庫,忽然發現 Db 用的 charset 全都是 latin1_swedish,雖然在 WordPress 上看是正常的,但是直接看 Database 的話卻都是亂碼。
這已經是很久以前的問題了,但那時候我沒有玩 Blog :p 既然剛好發現,那就順便修一修,以免以後要備份或搬家的時候掛掉。
這邊是大神的慘痛經驗,這邊看了大神犯的錯誤以後當然要小心別犯了同樣的錯。
我的作法是
- 先用 phpMyAdmin 或 WP Backup plug-in 來備份(這時先以latin1來操作)
- 把 sql file 用 PSPad 開啟,並且可以正常看到中文
- 將 sql file 用 UTF-8 格式存檔
- 清除原本 WordPress 用的資料庫
- 將 sql file 透過 phpMyAdmin 作 import, 並且檔案語系要選 utf8(這是預設值)
- 修改 wp-config.php 加上 DB_CHARSET 的兩行設定
- 回到 WordPress ,前後台看看有沒有問題
另外一邊再找資料的時候發現 WordPress 2.2 將完全支援 UTF-8 ,雖然 2.2 還沒出,這應是我用 SVN 遇到的搶先試用功能吧。
Leave a Reply