我们经常建好表格,向表格里插入汉子的数据时候,会出现乱码,比如:
insert into employee(id,username,gender) values(4,'张三','female');
报错是这样错误:
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'username' at row 1
出现原因分析如下:
- 查看使用的编码
show variables like ‘character%’
其中最重要的是 客户端编码和 结果集编码和 服务器编码。
- 默认客户端使用的编码 GBK
客户端使用的是gbk,而数据库让客户端使用utf-8,因此出错,但是客户端编码集是不能被修改的。
所以当输入这段代码的话,就会出现乱码,因为使用gbk插入的,而使用的utf8显示的;
insert into employee(id,username,gender) values(4,'张三','female');
下面的是解决乱码的方法是:
手动修改编码集:
a).告知服务器端客户端使用的编码
set character_set_client=gbk;
b).告知结果集使用 gbk 解码
set character_set_results=gbk;
注意:
- 修改客户端和结果集字符只是一次性操作,客户端关闭后就失效。
- 使用图形界面客户端不存在乱码问题。