我有一个以前使用过的系统:
mysql服务器5.6.22
mysql连接器5.1.47
特定列被设置为使用utf8mb4\u unicode\u ci
我能够使用java保存和读取表列中的emojis。
mysql connector现在因为某种原因升级到了8.0.12版本,系统在保存emojis时有问题,
原因:java.sql.sqlexception:字符串值不正确:'\xf0\x9f\x90\x91'用于第1行的“name”列
有人知道怎么解决这个问题吗?非常感谢。
顺便说一句,我使用的jdbc连接字符串已经有useunicode=true和characterencoding=utf-8
1条答案
按热度按时间ijxebb2r1#
那只羊需要utf8mb4,而不是整个mysql的utf8。不仅是栏目,还有联系。
对于java:
添加
?useUnicode=yes&characterEncoding=UTF-8
到jdbc url(或者可能是=true和=utf8)要将4字节utf8与connector/j一起使用,请使用
character_set_server=utf8mb4
. 只要连接字符串中没有设置characterencoding,connector/j就会使用该设置。这相当于自动检测字符集。