mysql - Hibernate MYSQL字符异常

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

我想将 twitter API 中的 twitter 数据保存在我的 mysql 数据库中。但有些用户的推文性格不同。

Incorrect string value: '\xF0\x9F\x87\xB5\xF0\x9F...' for column 'name' at row 1 HHH000346: Error during managed flush [org.hibernate.exception.GenericJDBCException: could not execute statement]

我的连接网址是:

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

最佳答案

您的环境中的某些内容未设置为正确处理 Unicode 文本。

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

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

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

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

关于mysql - Hibernate MYSQL字符异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51358309/

相关文章:

带有 mysql 配置的 Java Spring Boot 无法启动

php - 如果我尝试更新到 MySQL 负值,如何得到 MySQL 错误?

java - netbeans java 检查本地服务是否正在运行

mysql - 如何将关系表建模为 Hibernate 中的实体

java - 如何使用 JsonManagedReference 从相关对象读取属性

database - 使用多个数据库和 Liquibase 时的最佳 Hibernate 主键生成类型

spring - @JsonManagedReference 和 @JsonBackReference 无法从 jsonbackreference 模型中获取关系数据

mysql - mysql中选择多行问题

mysql - 查询实体-属性-值模型的有效方法是什么

Hibernate 4 显式多态性(注释)不起作用?