休眠MYSQL字符异常

时间:2018-07-16 09:11:07

标签: mysql hibernate spring-boot spring-data-jpa

我想将Twitter API中的twitter数据保存在我的mysql数据库中。但是某些用户的推文使用不同的字符。

  

不正确的字符串值:“ \ xF0 \ x9F \ x87 \ xB5 \ xF0 \ x9F ...”   第1行的'名称'HHH000346:托管刷新期间出错   [org.hibernate.exception.GenericJDBCException:无法执行   声明]

我的连接网址是:

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

然后我更改了mysql变量和表字符编码。当我在查询下面运行时

> 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

1 个答案:

答案 0 :(得分:0)

您的环境中的某些内容无法正确处理Unicode文本。

字节序列F0 9F 98 9C在查询中被错误地表示为“ðŸ〜œ”,它是Unicode字符“”,带有伸出舌头和眨眼眼睛的UTF8编码。 (也就是说,这是一个表情符号字符。)

要正确存储此字符,您需要确保:

  • 您要在MySQL连接上启用UTF8(即SET NAMES utf8mb4,或在连接时使用类似的选项来启用它)。
  • 您正在运行MySQL 5.5或更高版本。
  • 您表格的字符集为utf8mb4

取自https://stackoverflow.com/a/34165651/6572971