Mysql插入中文时提示:ERROR 1366 (HY000): Incorrect string value: '\xE5\x8F\xB0\xE5\xBC\x8F...' fo

时间:2022-06-10 20:14:02

Mysql插入数据时提示:ERROR 1366 (HY000): Incorrect string value: ‘\xE5\x8F\xB0\xE5\xBC\x8F…’ fo

分析如下:

首先通过语句查看: show create table  tdb_goods_cates ;  
发现如下所示:

Mysql插入中文时提示:ERROR 1366 (HY000): Incorrect string value: '\xE5\x8F\xB0\xE5\xBC\x8F...' fo

然后通过语句修改数据表编码:alter table tdb_goods_cates  default character set utf8;  

但是修改后仍然出现错误。


我们再次查看编码:show create table tdb_goods_cates ;
发现如下所示:

Mysql插入中文时提示:ERROR 1366 (HY000): Incorrect string value: '\xE5\x8F\xB0\xE5\xBC\x8F...' fo
注意 tdb_goods_cates 的编码仍然为 latin1 ,虽然此时表的编码已经是 utf8 , 但是不知道为什么 列的编码没有更改过来

下面就是更改列的编码即可
alter table tdb_goods_cates change cate_name cate_name varchar(40) character set utf8;
Mysql插入中文时提示:ERROR 1366 (HY000): Incorrect string value: '\xE5\x8F\xB0\xE5\xBC\x8F...' fo

小结:

1)修改表的编码方式:
ALTER TABLE `test` DEFAULT CHARACTER SET utf8;
该命令用于将表test的编码方式改为utf8;
2)修改字段的编码方式:
ALTER TABLE `test` CHANGE `name` `name` VARCHAR(36) CHARACTER SET utf8 NOT NULL;
该命令用于将表test中name字段的编码方式改为utf8