SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x93\x8A\xF0\x9F...' for column '......'
这货就是emoji表情符号是4个字节的,默认的utf8最多存储3个字节的信息,结果Mysql存入emoji表情符号就报错了。
这货好多年前就曾经遇见过,也处理过,以至于后来的我数据库的默认配置就是utf8mb4字段类型,不过我还是踩到坑里去了,记录一下,长个记忆。
我遇到问题检查了数据库信息和字段字符类型,没错,就是utf8mb4,可是还是有问题,于是开始网上各种baidu google,而网上也有说,所有的答案,清一色都是让调整数据库配置、表的字段类型改为utf8mb4,我的原本就是这样的,重新搞了一遍,没用,可能是我好多年没用thinkphp的缘故吧,忘记了,冲动了,按着网上的操作上手就干;干你酿的,这还得自己的问题
解决MySQL插入emoji表情符号的困扰

当尝试在MySQL中存储emoji时,即使字段设置为utf8mb4仍可能出现问题。检查并确认数据库、表及字段的字符集为utf8mb4是基础,但要注意,很多数据库客户端默认使用utf8连接,可能导致插入失败。在使用框架如ThinkPHP时,确保框架内部的charset配置为utf8mb4,避免在代码中进行大量字符编码转换,简化处理流程。
最低0.47元/天 解锁文章
1801

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



