最近又遇到MySQL的乱码,从一个数据库导出之后导入另一个数据库出现乱码。现在把处理过程小结一下。
刚开始把mysql的数据库文件拷过来,放到mysql的data目录下,也不知道原来用的什么编码。打开数据库看,原来全是乱码,于是把my.ini配置文件的内容添加了如下内容:
;character-set-server=utf8
;collation-server=utf8_general_ci
default-character-set=utf8
在数据库中还是看不到内容,又把default-character-set=utf8改为default-character-set=gb2312,这下数据库中能看到中文了,不过一添加,修改还是出现乱码。
最后想想,可能别人的库刚开始什么都没设置,用的是默认编码latin1,于是改为default-character-set=latin1,把公网上的数据库编码也设置成latin1_swedish_ci,这下导出本地的sql脚本,在网站上导入之后虽然数据库中看到的是乱码,不过程序中一切正常。
这个好像还有问题,我以前导的一个编码好像改成正常的了,不记得是怎么改的了。那个是数据库中和程序显示,修改全正常的,数据库中全用的utf8的。
附
查看数据库编码的命令:
SHOW VARIABLES LIKE 'collation_%';
SHOW VARIABLES LIKE 'char%';
更改字符集命令:(只能在mysql终端下运行,另一个比较简单的方法是在phpmyadmin中的操作菜单,整理数据库编码)
SET character_set_client = utf-8 ;
SET character_set_connection = utf-8 ;
SET character_set_database = utf-8 ;
SET character_set_results = utf-8 ;
SET character_set_server = utf-8 ;
SET collation_connection = utf8 ;
SET collation_database = utf8 ;
SET collation_server = utf8 ;
最新评论
1 年 5 周之前
1 年 7 周之前