2011年9月25日 星期日
mysqldump 匯出中文字變亂碼
使用 mysqldump 將資料庫匯出,移轉到另一台主機時,再匯入到資料庫時,發現所有中文字都變成亂碼。請先連到 mysql ,輸入以下指令:
SHOW VARIABLES LIKE 'character\_set\_%';
如果顯示內容如下:
+--------------------------+--------+
| Variable_name | Value |
+--------------------------+--------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
+--------------------------+--------+
最後一行告訴我們,系統是使用 utf8 編碼,但,其它的幾行其實告訴我們,mysql 是使用 latin1 做為預設編碼。
另外,還可以再執行以下指令:
show create database DBNAME;
顯示內容如果是:
CREATE DATABASE `DBNAME` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */
表示這個資料庫是使用 utf8 編碼。 那,問題就不大了,使用
mysqldump -u DBuser -p DBname --default-character-set=latin1 > DBname.sql
將資料庫匯出,將 sql 檔案移到 新的主機後,先用 vi or gedit 開啟檔案,將裡頭所有的 latin1 取代為 utf8。
接下來就可以匯入sql檔案,應該就正常囉!!
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言