向Mysql 中插入汉字(Emoji)出现 Incorrect string value

Posted 者行孙某

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向Mysql 中插入汉字(Emoji)出现 Incorrect string value相关的知识,希望对你有一定的参考价值。

在爬虫向mysql插入数据的时候发现会报错“”Incorrect String Value:‘\xf0\x9f“”,这个问题是因为UTF-8有可能是两个,三个,四个字节,Emoji表情或者某些特殊字符是4个字节,所以从网页上爬取的内容可能包含表情,而Mysql的utf8编码最多3个字节,所以数据插不进去。解决方案如下:

在/etc下找到my.cnf,修改如下:

[mysqld]

character-set-server=utf8mb4

[mysql]

default-character-set=utf8mb4

修改后重启Mysql

将已经建好的table也转换成utfmb4:

更改数据库编码:ALTER DATABASE caitu99 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin; 

以上是关于向Mysql 中插入汉字(Emoji)出现 Incorrect string value的主要内容,如果未能解决你的问题,请参考以下文章

让emoji表情变消失

MYSQL插入emoji报错解决方法Incorrect string value

c# 操作mysql数据库的时候会出现 插入中文汉字变成问号?

Mysql插入Emoji表情出错

java项目向mysql中写入emoji表情

向 mysql 插入汉字时报错 Incorrect string value: 'xE6x9BxB9xE5x86xAC...' for col....