今天用ems mysql查看数据库表时发现中文全部是乱码,这真叫一个气人啊。所以我就用mysql 命令查看的方式,也是乱码。没办法了,只有去解决它了,tmd。
1、用show variables like 'character/_set/_%'; 命令查看字符集设置,原来全部设置的latin1,所以乱码就很正常了。为了彻底解决,我找到mysql server的安装目录下的my.ini文件,修改了里面的两个default-character-set=utf8配置项目。
2、再来show variables like 'character/_set/_%'; 查看,都设置为utf8了(如果没有好的话,需要重启mysql服务,这是常识,也是最容易犯的错误,呵呵),但是用命令查看的方式还是乱码,哎。。。想死的心都有了,网上找了大半天的资料,也是解决不了问题。
3、没办法,自己想办法解决了,用命令set names gbk;设置下后再查看,我晕,全部都是‘?’这种形式的乱码。。。。。。。。。。后来我发现我犯了一个低级错误,在我用hibernate生成表的时候,原来数据设置还是latin1,也就是说我插入数据的时候就插入一堆乱码进去的,那么随便你怎么改,最终还是乱码的。问题找到了,只有再删掉数据库,CREATE DATABASE `database` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';生成一个database,再去自动生成表。OK。
4、打开ems mysql,设置client character=utf8,front character=gb2312,(这个是在注册数据库的时候设置的),查看表,中文能正确显示出来了,高兴中。。。。。用mysql终端命令查看,他妈的还是乱码,用命令set names gbk;设置下字符集后,也可以正确显示了,呵呵现在问题完全解决了。