cmd控制台插入mysql数据库中文信息时,插入失败的解决办法
故障码:
mysql> insert into t1(name,sex,age,address) values('张三','男',11,'沙河'); ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at row 1
该故障是由于中文编码不一致导致的数据插入失败所致。
一般mysql数据库在插入中文信息时出错的情况无外乎就是中文编码不一致所致。而目前支持中文的编码格式基本上有utf-8,gbk,gb2312三种,而数据库,jsp页面,控制台,Java代码等等的地方要尽可能的编码一致,否则可能会带来不必要的麻烦。
通过查找,我发现我的数据库编码格式是:utf-8,如下所示:
[mysql] default-character-set=utf8该信息在mysql的安装目录下的my.ini文件中,以我的为例,就是:C:\Program Files\MySQL\MySQL Server 5.5下的my.ini。
而我们的控制台的编码格式是:gbk,如下图所示:
vcq9ysehvr+qyryhvy0mZ3Q7ob7Uy9DQob+jrNTaob7Uy9DQob+0sL/a1tDK5MjrY21ko6y147v3u9iztbz8vLS/yaGjPC9wPgoKPHA+ICAgICAgICDTydPav9jWxsyous1teXNxbLXE1tDOxLHgwusmIzI2Njg0O8q9srvSu9bCo6zV4rW81sLW0M7Eyv2+3c7et6iy5cjrs8m5pqOsveK+9rDst6i+zcrHvavG5LHgwusmIzI2Njg0O8q9vfjQ0M2z0rujrNPJ09q/2NbGzKi1xLHgwusmIzI2Njg0O8q9srvE3L340NDJ6NbDo6zL+dLUztLDx9a709C4/LjEyv2+3b/itcSx4MLrJiMyNjY4NDvKvcHLo6y0y8qxztLDx72ryv2+3b/itcSx4MLrJiMyNjY4NDvKvdKyuMSzyWdia6GjPC9wPgoKPHA+vLSjrL2rbXkuaW5pzsS8/tbQtcR1dGYtOLjEs8lnYmsstPrC68jnz8KjujwvcD4KPHA+PHByZSBjbGFzcz0="brush:sql;">[mysql]
default-character-set=gbk
此时重启mysql服务器,然后再插入中文数据,运行结果如下所示:
mysql> insert into t1(name,sex,age,address) values('张三','男',11,'沙河'); Query OK, 1 row affected (0.05 sec)