MySql编码改过之后为什么查询数据还是乱码
你说的应该是中文显示乱码吧,这个主要原因应该是mysql数据库的编码方式和系统自身的编码方式冲突造成的,如果数据库的编码是utf-8,而系统自身的编码是gbk,那查询的时候中文很可能就会显示乱码,下面我大概介绍一下查看编码和设置编码的步骤,实验环境win7+mysql5.5+navicat,主要步骤如下:
1.先在navicat中查看要查询的数据,如下,数据显示正常,中文未出现乱码:
2.打开cmd,连接mysql,输入同样的sql语句,这次中文出现乱码,查询结果不能正常显示,如图:
3.查看当前数据库编码方式,语句是"show variables like '%character%'",从中可以看出,数据采用的编码方式是utf-8,而我们知道,cmd默认采用的编码方式是gbk,所以出现中文乱码,不能正常显示中文:
4.发现问题所在后,在输入sql语句前,可以进行一下编码设置,设置成与cmd默认编码方式一样,就不会出现中文乱码现象,命令是"set names gbk",如下:
至此,中文就能正常显示了,之所以中文显示乱码,归根结底还是编码方式冲突造成的,cmd中经常会出现这种情况,你设置一下编码就行,linux系统采用的是utf-8编码,出现中文乱码的情况较少,除非你设置数据库的编码方式不是utf-8。这里需要注意的是在你创建数据库的时候,就要注意编码的设置,有些时候数据库默认编码不是utf-8,而你又不指定,很可能就会出现乱码,而这种情况下,一般不仔细检查还发现不了,这时候你就得好好看编码了,希望以上分享的内容能对你有所帮助吧。
MySQL数据库中的中文乱码如何>办理/h2>
1、修改安装文件根目录下的my.ini文件:搜索字段default-character-set,设置其值为utf8/gbk之一(注意设置utf8的时候不能设成utf-8)再去重启MySQL服务器如果还是出现乱码,接着执行下面操作2、修改数据库编码在安装目录的data目录下找到你出现乱码的数据库对应的文件夹(这个文件夹即是你这个数据库存放数据的地方),进入找到db.opt文件(即此数据库的编码配置文件),修改值为下面的default-character-set=gbkdefault-collation=gbk_chinese_ci再去重启MySQL服务器如果还是出现乱码,接着执行下面操作3、再不行,备份原数据库数据,直接drop掉这个数据库重新创建数据库并设置编码createdatabaseyourDBcharactersetgbk;别忘了重启MySQL服务器综上:如果还没有解决,我也没辙了。重装吧,重装的时候设置下编码三处的编码要一致