【问题标题】:Hibernate MYSQL character exceptionHibernate MYSQL 字符异常
【发布时间】:2018-12-23 19:03:04
【问题描述】:

我想将来自 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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 我都做了
    猜你喜欢
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多