【发布时间】:2016-09-08 08:34:06
【问题描述】:
我正在存储包含表情符号的数据,数据以 json 形式出现,所以当我检索它时就像
“Giggs'ern har vært å koset seg igjen(方括号) Dette er en fillesak”
当我将它存储到 MySQL 时,我收到了这个错误:
2016-05-0213:12:45.582 [错误] pool-1-thread-1 org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 不正确的字符串 值:
'\xF0\x9F\x98\x8A\x0A<...'第 1 行的列'comment'
我改变了
MySQL 数据库编码为utf8mb4 但并没有解决问题。
【问题讨论】:
-
几个问题:列是 varchar 还是 blob?您是否要存储表情符号的二进制或 base64 表示?您可以在调用 Hibernate 时提供这段代码吗?也许还有数据样本?
-
不幸的是,您还需要告诉 MySQL 驱动程序使用 Unicode。在连接字符串中,谷歌它。盒子也可以是没有表情符号的字体。
-
是的,该列是文本类型并仅存储字符串数据,我使用简单的 jdbc insert @sanF
-
您是否也更改了列的排序规则?我看到了其他类似的帖子,他们解决了将排序规则更改为
utf8mb4_general_ci。也许这行得通。 -
是的,我已经更改了表和列的排序规则,但我仍然收到这样的日志 11:48:44,027 错误 SqlExceptionHelper:146 - 不正确的字符串值:'\xF0\x9F\x91\ x8D\xF0\x9F...' 用于列 'comment' 并获取 [?][?][?] 而不是表情符号 @SanF