MySQL 中文乱码问题

有一张表的结构如下:

 

插入中文失败:

 

原因:

查找当前数据库设置的字符集解析规则:

 

服务器database默认按照utf8来解析

解决方法:

 

但是服务器显示结果乱码:

 

原因:数据来源是服务器,解析数据是客户端(客户端只识别gbk:只会2个字节一个汉字),但是服务器给的数据确是utf8,3个字节1个汉字,结果就乱码

解决方案:修改服务器给客户端的数据字符集为gbk:

 

注意:set 变量=值;修改的只是会话级别(当前客户端,此次连接有效,关闭失效):

 

查看之前修改的字符集设置:

 

设置服务器对客户端的字符集的值可以使用set names 字符集(也是会话级别)

 

Set names gbk 等价于set character_set_client=gbk; set character_set_connection=gbk; set character_set_results=gbk;

原文地址:https://www.cnblogs.com/zhyue93/p/mysql_cn.html