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上的配置覆盖了,也就不会出现乱码了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值