今天第一次用MySQL,遇到了中文乱码问题,问题描述如下:
直接通过Navicat编辑不会出现乱码,通过JDBC插入以及读取的中文乱码。
因为之前用过Oracle,于是尝试找到MySql的配置文件。我用的是MySQL 5.5,在其安装目录下找到my.ini,
设置default-character-set=gb2312
以为这样改了就好了,可是测试还是乱码,接着试了utf-8,gbk均不行。
如此这般,不知如何下手了。然后再网上查了一些资料,有的帖子说要重启服务,有的帖子说要将建好的数据库删除,设置后重新建立,都试了,还是不行。
最终问题的解决关键在于发现了my.ini中的另外一个字段character-set-server,必须对这个字段进行设置。
总结一下问题的解决步骤:
1 找到my.ini文件,设置数据库编码方式,两个字段都要进行设置。
default-character-set=gb2312
character-set-server=gb2312 (此处配置成utf-8应该也可以的)
设置完成后,如果依然是乱码,继续下面的步骤。
2 重启mysql服务。
如果依然乱码,继续。
3 将表导出,删除已有数据库。
4 重新建立数据库,导入表。
xp和win7环境下这样操作乱码问题均得到解决。
一些在解决过程中可能用得上的命令:
mysql> alter table content modify author varchar(30) character set gb2312;
将某张表的中指定的某个列进行全部设置
mysql> show variables like '%set%'
查看当前的编码格式这只