mysql/ target=_blank class=infotextkey>mysql数据库安装时,如果没有手动配置编码,默认选择的应该是gb2312编码,当遇到一些生僻字的时候就会发现不能显示,或显示乱码。
1.乱码出现的原因:
由于字符集GB2312只收录了6763个汉字,导致一些生僻字无法正常的显示。
2.确定解决办法:
把字符集由GB2312改为GBK或utf8。但是由于不能丢弃之前的数据,如何修改字符集成了关键。
3.字符集的修改:
a. 先导出表结构
其中参数-d表示只导出表结构,不导出数据。
b. 打开createdb.sql,手工把gb2312替换成utf-8。
c. 导出所有记录
其中参数--no-create-info表示不生成建表语句;--default-character-set=gb2312表示按照原来字符集导出所有数据。
d. 打开data.sql,手工把SET NAME gb2312改成SET NAME gbk或utf8。
注意:如果data.sql很大,可能需要找一些替换工具来完成替换操作,否则可以直接用UltraEdit之类的编辑工具打开修改。
e. 在新的服务器上创建表,导入表的结构,执行createdb.sql。
f. 导入数据,执行data.sql
g. 创建数据库用户。
完成了数据库字符集从gb2312到gbk或utf8的修改,接下去可以登录数据库,手工把显示为"?"的乱码字重新更新一下。