有一张表的结构如下:
插入中文失败:
原因:
查找当前数据库设置的字符集解析规则:
服务器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;