mysql控制台显示中文乱码的原因和解决

控制台编码

修改character_set_client、character_set_results、character_set_connection为GBK,就不会出现乱码了。但其实只需要修改character_set_client和character_set_results。

 

控制台的编码只能是GBK,而不能修改为UTF8,这就出现一个问题。客户端发送的数据是GBK,而character_set_client为UTF8,这就说明客户端数据到了服务器端后一定会出现乱码。既然不能修改控制台的编码,那么只能修改character_set_client为GBK了。

服务器发送给客户端的数据编码为character_set_result,它如果是UTF8,那么控制台使用GBK解码也一定会出现乱码。因为无法修改控制台编码,所以只能把character_set_result修改为GBK。

  1. 修改character_set_client变量:set character_set_client=gbk;
  2. 修改character_set_results变量:set character_set_results=gbk;

 

总结一句话:

mysql控制台输入的数据默认编码是gbk,然而mysql服务器按照utf-8来解析保存数据.所以保存进去的数据必然出现乱码

读取数据库的数据,mysql按照utf-8编码传输到控制台,然而控制台默认按照gbk来解析,所以显示的数据必然出现乱码

 

一劳永逸的解决办法

配置文件路径:D:\Program Files\MySQL\MySQL Server 5.1\ my.ini

[client]

port=3306

[mysql]

default-character-set=gbk

 

3 MySQL工具

使用MySQL工具是不会出现乱码的,因为它们会每次连接时都修改character_set_client、character_set_results、character_set_connection的编码。这样对my.ini上的配置覆盖了,也就不会出现乱码了。

猜你喜欢

转载自blog.csdn.net/qq_26514509/article/details/85145433