WordPress mysql db 由 latin1 轉成 utf8

阿亮遇見熊 » WordPress mysql db 由 latin1 轉成 utf8

原本我這個 wordpress 的 mysql 資料庫 (比如名稱為 myblog),DB_COLLATE 為 latin1_swedish_ci ,也不是不能用,只是用 phpmyadmin 會變亂碼,在後台處理會麻煩點。

為了後端資料庫方便直接修改資料內容,就花點時間將該資料庫轉成 utf8 的資料。

參考各方資料,最後實作的步驟如下:

新增一個新的 db,比如為 myblog_utf8,用 phpmyadmin 將其 DB_COLLATE 設成 utf8_general_ci 或 utf8_unicode_ci

將 myblog 的資料匯出

mysqldump myblog –default-character-set=latin1 > test.sql

用 vi 編輯 test.sql,執行取代字串

:% s/CHARSET=latin1/CHARSET=utf8/g

然後,將 test.sql 的下列這行

/*!40101 SET NAMES latin1 */;

取代成

/*!40101 SET NAMES utf8 */;

然後,將 test.sql 匯入 myblog_utf8

mysql myblog_utf8 –default-character-set=utf8 < test.sql

編輯 wp-config.php 的 DB_NAME, DB_CHARSET 及 DB_COLLATE,讓原來的 db 重新指到 myblog_utf8 即完成。

define(‘DB_NAME’, ‘myblog_utf8’);
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, ‘utf8_general_ci’);

PS: 並不需要用 iconv 等編碼轉換的過程!

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

What is 14 + 3 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)