首页 > 解决方案 > 排序规则 utf8_general_ci 不适用于 Heroku

问题描述

我正在使用 JetBrains 的 Exposed 库和 MySQL 数据库连接。在我的数据库中,我需要使用 UTF-8 编码字段,所以我使用utf8_general_ci排序规则。我在本地数据库上对其进行了测试,它工作得很好,但是当我在 Heroku 数据库上运行相同的代码时,我得到的是问号而不是 UTF-8 符号。这是我的架构对象:

object UserMessage : Table() {
  val id = varchar("id", 20).primaryKey()
  val channelId = varchar("channel_id", 20)
  val content = varchar("content", 2000, collate = "utf8_general_ci")
  val creatorId = varchar("creator_id", 20).nullable()
  val creationDate = varchar("creation_date", 26)
}

两个数据库的创建脚本相同,如下所示:

CREATE TABLE `usermessage` (
  `id` varchar(20) NOT NULL,
  `content` varchar(2000) NOT NULL,
  `channel_id` varchar(20) NOT NULL,
  `creation_date` varchar(26) NOT NULL,
  `creator_id` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我应该怎么做才能使编码在 Heroku 上工作?

标签: mysqlherokukotlinkotlin-exposed

解决方案


推荐阅读