今天我在学习MySQL时遇到一个问题:用cmd窗口往表中添加汉字发现添加不上,报ERROR 1366 (HY000): Incorrect string value: '\xBC\xBE\xBE\xFC' for column 'name' at row 1这个错。我猜测是编码的问题,于是查了我的mysql的编码都是utf8的,按理说是不会出错的。后来我在看别人的博客时发现这个问题出在哪了。
原来是我使用的cmd窗口是使用gbk的编码的,mysql和cmd的编码是冲突的,所以导致往表中添加汉字失败。
解决方案:
1 在mysql软件上将编码设置为utf8,直接使用mysql把汉字添加到表中
show variables like "%character%"//显示mysql中的编码
set character_set_client=utf8;//把mysql中的client端的编码格式修改为utf8
将这些属性的编码设置为utf8后,我们可以直接在mysql里将汉字输入到表中
2 修改mysql中的属性的编码使其和cmd窗口的编码相同,在cmd窗口上把汉字输入到表中。
set names gbk;//将mysql中的编码格式修改与cmd相匹配。
使用 show variables like "%character%"显示mysql中的编码格式。