【问题标题】:Squeryl utf8mb4 supportSqueryl utf8mb4 支持
【发布时间】:2018-04-11 06:42:17
【问题描述】:

我正在使用Squeryl 来处理 MySQL 数据库。这些表采用 utf8mb4 编码。现在我想通过 Squeryl 将一些 utf8 (4 byte) 字符串插入到数据库中。我该怎么做?

我尝试将 ?useUnicode=yes&characterEncoding=UTF-8 设置为我的连接 url,但显然,UTF-8 这里是 MySQL 的 3 字节,所以它不起作用。

我找到了this StackOverflow answer,但经过一番挖掘后,无论如何我都看不到将我的查询附加到SET NAMES utf8mb4;(不能更改数据库配置和环境)

示例字符串:อลิซร้องเพลงตามเลยค่ะ????????????

尝试插入字符串时出错:

Exception in thread "main" org.squeryl.SquerylSQLException: Exception while executing statement : Incorrect string value

【问题讨论】:

  • 除了?useUnicode=yes&characterEncoding=UTF-8之外还有charset=utf8mb4参数吗?
  • 遗憾的是,MySQL documentation 没有关于配置属性(见底部)
  • 连接后不能立即执行SET NAMES utf8mb4

标签: mysql scala utf-8 utf8mb4 squeryl


【解决方案1】:

请务必不要以root 连接。

my.cnf 中有这个(在[mysqld] 部分)

init_connect = SET NAMES utf8mb4

【讨论】:

    猜你喜欢
    • 2019-11-02
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 2014-08-14
    • 2015-10-08
    • 1970-01-01
    相关资源
    最近更新 更多