Incorrect|Incorrect string value: '\xF0\x9F\x91\x8C' for column

在datagrip中的具体报错

[2019-01-15 10:26:35] [HY000][1366] Incorrect string value: '\xF0\x9F\x91\x8C' for column 'xxxx' at row 1 [2019-01-15 10:26:35] [HY000][1300] Invalid utf8 character string: 'F09F91' [2019-01-15 10:26:35] [HY000][1366] Incorrect string value: '\xF0\x9F\x91\x8C' for column 'address' at row 1

【Incorrect|Incorrect string value: '\xF0\x9F\x91\x8C' for column】原因是我在输入的时候加了一个
?

这个导致无法存储
搜到使用utf8mb4字符集可以解决,但我使用这个字符集的时候没有解决,实际上,之前早就是这个字符集了。
继续查到文章 emoji字符无法写入Mysql数据库问题
经过在网上查询,\xF0\x9F开头的确实是UTF8字符集范围;UTF8长度是2-4个字节,我们在Mysql常用的是2-3个字节长,但这个抛出来的错误显示是4个字节,所以就错在这了(用java写代码也会报同样错误,原因是jdbc在做数据插入前会严格检查字段的类型、长度,一但不符就会抛出异常;
然后在这篇文章中 MySQL插入emoji表情错误的2种解决方案,Incorrect string value: ‘\xF0\x9F\x98\x84’
Incorrect|Incorrect string value: '\xF0\x9F\x91\x8C' for column
文章图片

想起原来工程里有的emoji依赖,应该是处理这类问题的

    推荐阅读