ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column XXX at row 1

 show variables like '%character%';  ——查看所有编码方式

 show create table table_name;   ——查看某个表格的编码方式

 

STATUS:

查看Server(服务端),Db(数据库),Client(客户端),Conn.(连接)的编码


查看修改mysql编码方式
MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为gbk或者utf8。 
1、需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -u root –p,之后输入root用户的密码)。
查看数据库的编码方式命令为:  
mysql>show variables like '%character%';
ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column XXX at row 1
从以上信息可知数据库的编码为latin1,需要修改为gbk或者是utf8; 
其中,character_set_client为客户端编码方式;character_set_connection为建立连接使用的编码;
character_set_database数据库的编码; 
character_set_results结果集的编码; 
character_set_server数据库服务器的编码; 
只要保证以上四个采用的编码方式一样,就不会出现乱码问题。 

另一个查看数据库编码的命令: 
mysql> show variables like 'collation%';
ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column XXX at row 1

status命令:

ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column XXX at row 1


方法一:

对字段名进行修改

alter table tab_name modify col_name data_type character set gbk;



将my.ini或者在MySQLInstanceConfig.exe里改变了编码字符集之后只对以后创建的表起作用,对于以前创建的表要使用alter table Content modify Name varchar(50) character set gbk;才可以插入中文。

方法二:

对整个表进行修改

ALTER TABLE TAB_NAME CONVERT TO CHARACTER SET CHARSET_NAME;(TAB_NAME:表名,CHARSET_NAME设置的编码方式)

ex:

ALTER TABLE Power CONVERT TO CHARACTER SET GBK;


ALTER TABLE TAB_NAME CHARACTER SET UTF8;(TAB_NAME:表名)
SET CHARACTER_SET_CLIENT=GBK;
SET CHARACTER_SET_CONNECTION=GBK;
SHOW CREATE TABLE TAB_NAME;(查看表中字段的具体信息)
ALTER DATABASE DB_NAME CHARACTER SET UTF8;(DB_NAME:数据库名)


总结:

Client 和 Conn. 是gbk,插入中文能够正常插入数据。