mysql中文乱码终结解决

今天在对数据库插入中文数据时中文乱码,一开始只是以为数据库的编码没 设成utf-8,然后改为utf-8之后还是不行!!!

然后度娘了很久之后,看到一篇博客写的很清晰,终于搞起了mysql中文乱码的原因。

首先通过设置把编码都设成utf-8: 如下图:


这样做看似可以了,其实查出的数据还是乱码!!!


继而了解mysql数据存储于查询过程的字符编码转换机制:

1、存储数据过程:

  1)客户端发送数据到服务器端。

  2)服务器端会把请求的数据从客户端字符集(character_set_client)转成服务器连接字符集(character_set_connection)。

  3)然后服务器会检测存储区域(table,column)character_set_server的字符集,

        然后把数据从连接字符集(character_set_connection)转为存储区域(table,column)character_set_server的字符集,然後再存储或者查询。

2、查询数据过程:

  1)服务器将存储区域(table,column)character_set_server的字符集转换成服务器连接字符集(character_set_connection)。

  2)将服务器连接字符集(character_set_connection)转换成结果字符集(character_set_results),再发送到客户端。


原因:windows下的dos不支持utf-8!!!

由此:通过 set names gbk;

最终的字符集:



dos端编码为gbk,因此能正确显示了中文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值