在mysql的表中插入数据的时候含有中文,插入之后是问号,这显然是字符集问题。
其实问题的本质就是客户端和数据库服务器字符编码方式不匹配,先查看字符集。
show variables like '%char%';
可以查看字符集,看到有gbk,有utf8 也有latin1,这是mysql的默认编码方式。
现在我们要对这里的字符集或者表(字段)的字符集作出改变,让它们匹配。
set character_set_server=gbk;
通过以上方式即可改变。
set names gbk;
以上语句设置的是character_set_client character_set_connection character_set_results
但是测试还是不行,那就是表本身的问题了,重新创建一个表设置字符集为gbk(两个字符解析为一个中文),之后测试成功,解决了乱码问题。
create table s
(
sex char(2);
)
charset gbk;