再提mysql編碼問題-避免亂碼和修復亂碼1
阿新 • • 發佈:2019-02-09
一、避免亂碼問題
做到“三位一體”,即客戶端,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