错误描述
Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
出现这个错误的原因是,数据库的编码格式为latin1 而我要将utf8的中文插入到数据库中。
解决方案
首先修改数据库的编码:
alter table score default character set utf8;
但是插入中文依然出现错误。
然后通过查看数据表编码
show create table score;
发现如下所示

注意 course 的编码仍然为 latin1 ,虽然此时表的编码已经是 utf8, 但是不知道为什么 列的编码没有更改过来
下面就是更改列的编码即可
alter table score change course course varchar(50) character set utf8;

结果是列的编码已经修改成功
接下来插入utf8中文就没有问题了

本文详细介绍了当尝试将UTF8编码的中文数据插入到MySQL数据库时遇到的乱码问题及解决方法。首先,通过修改数据库编码至UTF8,但发现仅修改数据库编码无法解决问题,因为列的编码仍为Latin1。最终,通过修改列的编码至UTF8,成功解决了中文乱码的问题。
471

被折叠的 条评论
为什么被折叠?



