最近在用mysqldump導一個數據庫的時候發現,原來的庫是latin1的,新庫爲utf8的,導完了以後,發現結果是亂碼的。
最後根據編碼規則,用以下辦法來解決亂碼問題。
第一步,導出舊庫
mysqldump --default-character-set latin1 -uroot -pXXX --database db > /tmp/old.sql
第二步,轉換編碼(只有linux或unix上有這個命令)
iconv -t utf-8 -f gb2312 -c /tmp/old.sql > /tmp/new.sql
第三步,導入新庫
修改new.sql,增加一條sql語句: "SET NAMES utf8;",再將裏面所有的CHARSET=latin1改成CHARSET=utf8,保存。
mysql -hlocalhost -uroot db < new.sql