Mysql中文乱码问题

中文数据问题本质是字符集问题(客户端和服务器的编码格式不一致导致)

计算器只识别二进制:需要二进制与字符的对应关系(字符集)

案例说明:

用cmd窗口连接mysql,插入一条中文数据

 结果可以看到报了错,原因:'\xD5\xC5\xD4\xBD\'意思是'张越'两字对应的是四个字节(字符集为:GBK)

而服务器默认的数据是UTF8格式,一个汉字对应三个字节,读取三个字节转换成汉字(失败)

从截图中可以看出客户端字符集格式为:GBK

服务器,我们可以先查看服务器总共支持多少中字符集

--查看所有字符集--
show character set;

 总共支持39中字符集,其中就有gbk和utf8

 查看服务器默认的对外处理的字符集

-- 查看服务器默认的对外处理的字符集--
show variables like 'character_set%';

 结果可以看出,服务器确实是以utf8的格式对客户端(GBK格式)的数据进行解码的

 由于cmd窗口的字符集只能是GBK,无法改变客户端,所以只能改变服务器的字符集

设置服务器对客户端的字符集的认识

--设置服务器字符集--
set names gbk;

 

 此时客户端和服务器的字符集编码一致(GBK)

 再次插入中文的效果是成功的

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值