一、避免乱码问题
做到“三位一体”,即客户端,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