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’
文章图片
想起原来工程里有的emoji依赖,应该是处理这类问题的
推荐阅读
- jvm关于String
- LeetCode(03)Longest|LeetCode(03)Longest Substring Without Repeating Characters
- 1004.|1004. Distinct Values
- 026-Catagory-NSString
- 使用NSAttributedString富文本踩到的坑
- String个人总结
- convert|convert string to BST[deserialize 基础]
- gorm缺陷
- 常用的一些时间格式
- 一个关于String的疑问