1. 程式人生 > >再提mysql編碼問題-避免亂碼和修復亂碼1

再提mysql編碼問題-避免亂碼和修復亂碼1

一、避免亂碼問題

做到“三位一體”,即客戶端,MySQL character-set-client,table charset三個字符集完全一致就可以保證一定不會有亂碼出現了。而對於已經出現亂碼,或者已經遭受有損轉碼的資料,如何修復相對來說就會有些困難

二、修復已經亂碼的資料的方法

簡單方法:

1.通過錯進錯出的方法,將資料匯出到檔案。

2.用正確的編碼集修改建立新表

3.將之前匯出的檔案資料匯入到正確字符集編碼的新表中去

例如:我們用UTF-8將包含中文的資料錯誤入到Latin1編碼的表中,匯出再匯入恢復

shell> mysqldump -u root -p -d --skip-set-charset --default-character-set=utf8 test charset_test_latin1 > data.sql
#確保匯出的檔案用文字編輯器在UTF-8編碼下檢視沒有亂碼
shell> mysql -uroot -p -e 'create table charset_test_latin1 (id int primary key auto_increment, char_col varchar(50)) charset = utf8' test
shell> mysql -uroot -p  --default-character-set=utf8 test < data.sql