最近好几次遇到Mysql插库时报错, 查看日志之后, 报错信息大概长这样
Incorrect string value: ‘\xF0\x9F\x98\xAD”,…’ for column ‘commentContent’ at row 1
结合客户端测试, 发现出错原因是数据中存在emoji表情. 具体原因是, emoji表情在Mysql中是用四个字节编码的, 而我们通常使用的utf-8编码在mysql数据库中默认是按照3个字节一个单位进行编码的. 所以需要修改Table的编码方式为utf8mb4 解决方法如下:
### 选择数据库
mysql> USE database_name;
### 将该数据库中的指定表编码格式修改为utf8mb4
mysql> ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4;
解决办法参考了这篇文章, 文章里还有提供另外两个地方可以修改, 但是我似乎只修改了这一项就可以插入emoji数据了. 如果不行的话, 可以再试试修改mysql数据库的编码为uft8mb4或者修改连接数据库的连接代码.