JOOQ表情符号(utf8mb4)支持

时间:2016-07-01 18:16:21

标签: java mysql emoji jooq utf8mb4

我们尝试使用JOOQ在MySQL 5.6数据库中存储和读取表情符号。 数据库,表和列使用字符集utf8mb4和collat​​ion utf8mb4_unicode_ci。使用MySQL Workbench,我可以创建并选择表情符号。所以数据库应该准备就绪。

但是当我用JOOQ存储表情符号时,我得到: 字符串值不正确:' \ xF0 \ x9F \ x98 \ x80'对于专栏' test'在第1行

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

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

检索我用MySQL Workbench存储的表情符号工作正常。

1 个答案:

答案 0 :(得分:1)

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

有两种方法:

  1. 服务器级别:将character_set_server = utf8mb4添加到my.cnf或“set global character_set_server = utf8mb4”

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