在项目中遇到了存储emoji(?)报错的情况,错误如下: Incorrect string value: '\xF0\x9F\x98\x80' for column 'name' at row 1 我们的项目使用的是springboot2.4.8+mysql5.7 数据库字段的编码已经修改成utf8mb4,并且直接把emoji插入表是可以成功的,所以不是数据库编码的问题。 网上搜了一下资料,有两个解决方案: 设置连接池的connection-init-sql的值为:SET NAMES utf8mb4,这个会在每次执行sql前执行; 升级mysql驱动类版本。升级前我们使用的是5.1.46,升级到5.1.49后问题解决。 为什么升级驱动类后可以了呢,我查看了mysql官网对驱动类的发行说明,发现5.1.47版本就已经解决了这个问题,原文如下: 浏览器翻译后: 参考链接:Changes in MySQL Connector/J 5.1.47 (2018-08-17) mysql存储emoji异常解决 mysql