a. 把資料庫 dump 出來

mysqldump -u xxx -p database > database.sql –default-character-set=latin1

這時候 dump 出來的 database.sql 是 latin1 的檔案格式,然而是 utf8 的文字資料,因此這時若用 vi 開檔看它 …





還是會發現中文字是鬼畫符 … 這時不要被眼前的假象所騙 … 以為自己做錯 .. 幾接著做下一步驟。

b. 把 dump 出來的 database.sql 下載回去 .. 用 emEditor(網路上可免費下載,是個支援 utf-8 的編輯器)把 database.sql 打開,

它可以正常識別 utf8 的文字 ..用取代的功能,把 latin1 都取代成 utf8 ,之後直接另存新檔 .. 這時把檔案類型設定儲存成 UTF-8。

c. 再把 database-utf8.sql 上傳到 server .. 這時我們用 vi 開啟它 .. 就可以看見是正常的中文字 .. 這就表示檔案沒問題囉。

d. 把檔案匯入資料庫

mysql database < database-utf8.sql -u xxx -p –default-character-set=utf8
如果資料量不是很大 … 那麼很快就可以完成這個步驟 .. 這時候若沒有錯誤訊息出現 .. 那麼恭喜你 ..

你已經完成了資料庫轉換的工作了。如果有錯誤訊息出現 .. 主要有兩個情形 ..

1. 文件檔內的中文字,用 vi 看是亂碼 ..文件檔的格式不是 utf-8。

2. 匯入的時候漏掉指定採用 utf8 的資料編碼匯入。

以上的作業是在 資料庫系統都是處於 latin1 的環境底下,也就是沒有在 my.cnf 指定 default-character-set=utf8。

留言

這個網誌中的熱門文章

Flash CS4有夠慢!