【问题标题】:JOOQ emoji (utf8mb4) supportJOOQ 表情符号 (utf8mb4) 支持
【发布时间】:2016-11-04 05:39:56
【问题描述】:

我们尝试使用 JOOQ 在 MySQL 5.6 数据库中存储和读取表情符号。 数据库、表和列使用字符集 utf8mb4 和排序规则 utf8mb4_unicode_ci。使用 MySQL Workbench,我可以创建和选择表情符号。所以数据库应该已经准备好了。

但是当我使用 JOOQ 存储表情符号时,我得到: 不正确的字符串值:'\xF0\x9F\x98\x80' for column 'test' at row 1SQL

 DSLContext dslContext = DSL.using(dataSource, SQLDialect.MYSQL);

 dslContext.insertInto(table)
                .set(testRecord)
                .returning()
                .fetchOne();

检索我使用 MySQL Workbench 存储的 en emoji 工作正常。

【问题讨论】:

    标签: java mysql emoji jooq utf8mb4


    【解决方案1】:

    要在应用程序中使用 utf8mb4,请确保在服务器级别或在执行查询之前设置它。

    有两种方法:

    1. 服务器级别:将 character_set_server=utf8mb4 添加到 my.cnf 或“设置全局 character_set_server=utf8mb4”

    2. 在运行查询之前:“set names utf8mb4”

    【讨论】:

    • 你知道如何用 JOOQ 做到这一点吗?问题是我在自己的写入服务器上运行该服务。
    • 不知道具体如何使用 JOOQ。但是如果你有mysql的root密码,你可以为服务器全局设置字符集:"set global character_set_server=utf8mb4"
    猜你喜欢
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 2016-05-09
    • 2015-07-23
    • 2013-08-10
    • 2019-11-02
    相关资源
    最近更新 更多