MySQL数据库出现中文乱码的原因,往往是客户端、服务器、结果集、数据库的字符集不统一造成的,可以通过:show variables like "%char%";语句查询自己数据库当前字符集的配置如下:
对于数据库字符集,可以通过这个命令更改:ALTER DATABASE 'db_name' CHARACTER SET utf8; 其他的也可以通过这条语句修改:setcharacter_set_client='utf8'; 但是,character_set_server如果默认为latin1,要永久更改,用set命令是行不通的,但是可以更改而更改my.ini文件。
其中有两种如下情况:
- 在MySQL的安装文件中进入bin目录下,双击MySQLInstanceConfig.exe文件,重新配置一遍server的配置,但需要注意的是,在Character Set环节,要选择第三项,character选择utf8,(第一项是默认server字符集为latin1)。这个是一般大部分人会懂的配置。
- 如果是连接部分出现问题的话,实现后面的命令:执行set names utf8的效果等同于同时设定如下:
SET character_set_connection='utf8';
SET character_set_results='utf8';
最好是吧所有的字符都设置为UTF-8
第二种是自己碰到的问题,如果在bin文件夹中没有出现上述1中的exe文件,但是又想永久性的更改character_set_server中默认的字体,最后经过自己的实验发现不用也可以改只要在my配置文件中对应位置加入两句:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
就可以完美的解决默认的字符这个问题
而且必须在对应的位置中添加。