hibernate mysql字符异常

enyaitl3  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(339)

我想把twitter api中的twitter数据保存在mysql数据库中。但一些用户的微博却有不同的特点。
字符串值不正确:第1行“name”的“\xf0\x9f\x87\xb5\xf0\x9f…”列hh000346:托管刷新期间出错[org.hibernate.exception.genericjdbception:could not execute statement]
我的连接url是:

jdbc:mysql://127.0.0.1:3306/social_media?useUnicode=yes&characterEncoding=UTF-8

我改变了mysql变量和表的charecter编码。当我在下面运行查询时

> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR
> Variable_name LIKE 'collation%';

结果是:

character_set_client     : utf8mb4 
character_set_connection : utf8mb4 
character_set_database   : utf8mb4
character_set_filesystem : binary  
character_set_results    : utf8mb4 
character_set_server     : utf8mb4
character_set_system     : utf8
collation_connection     : utf8mb4_unicode_ci
collation_database       : utf8mb4_unicode_ci
collation_server         : utf8mb4_unicode_ci
ds97pgxw

ds97pgxw1#

您环境中的某些内容未设置为正确处理unicode文本。
字节序列 F0 9F 98 9C ,错误地表示为“ðÿ˜œ" 在您的查询中,是unicode字符“?”的utf8编码,这是一张伸出舌头和眨眼的脸(也就是说,它是一个表情符号字符。)
要正确存储此字符,您需要确保:
您正在mysql连接上启用utf8(即, SET NAMES utf8mb4 ,或在连接时使用类似的启用选项)。
您正在运行MySQL5.5或更高版本。
表的字符集为 utf8mb4 .
取自https://stackoverflow.com/a/34165651/6572971

相关问题