项目中使用Mysql数据库保存emoji表情时😂会报错:
Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8D' for column 'name'
原因是UTF-8编码有可能是两个、三个、四个字节。Emoji表情或者某些特殊字符是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。
Mysql的utf8编码并不是真正的UTF-8编码,Mysql的utf8最多只支持3个字节,而emoji表情、一些特殊的中文字符则需要4个字节才能存储, 因此才会报错。
解决办法
修改文件/etc/mysql/mysql.conf.d/mysqld.cnf:
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_general_ci
重启mysql服务器:service mysql restart即可
解决MySQL存储Emoji问题
本文详细解释了在MySQL中使用UTF-8编码存储Emoji表情时遇到的问题及原因,并提供了具体的解决方案,包括修改配置文件和重启服务器。
478

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



