中文数据问题本质是字符集问题(客户端和服务器的编码格式不一致导致)
计算器只识别二进制:需要二进制与字符的对应关系(字符集)
案例说明:
用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)
再次插入中文的效果是成功的