使用MySql和表情符号流畅
我正在尝试使用Slick将emojis持久化到MySQL表中的一列 我有一个使用MySql和表情符号流畅,mysql,scala,slick,Mysql,Scala,Slick,我正在尝试使用Slick将emojis持久化到MySQL表中的一列 我有一个my.cnfconfig文件,该文件具有以下与字符集相关的设置: [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init-connect='SET NAMES utf8mb4' 我的jdbc字符串如下所示: url = "j
my.cnf
config文件,该文件具有以下与字符集相关的设置:
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
我的jdbc字符串如下所示:
url = "jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8"
现在,一开始我不确定characterEncoding
参数是否只使用“UTF-8”,但从我在将其与useUnicode=true
参数组合时所读到的信息来看,它应该可以工作
当Slick执行以下sql时:
insert-into`content`(`id`,`title`)值('f1291f0d-eeee-4379-84ef-5d62e2870407','这是一个emoji,我对MySQL不太了解。但是您在my.cnf
中指定characterset server=utf8mb4
,在连接字符串中指定characterEncoding=UTF-8
。根据手册(),utf8是utf8mb3的别名,UTF-8一点也没有提到。您是否尝试过将characterEncoding
设置为utf8mb4
或将其完全删除?@MatthiasBerndt细节有点模糊,但我的理解是,通过添加useUnicode=true
,它应该告诉它使用utf8mb4
。我会变瘦kcharacter set client handshake=false
设置应该使我在jdbc字符串中传递的任何内容都变得毫无意义!useUnicode
似乎根本不存在。手册中没有提到它:哦,记住我使用的是MySQL 5,还有连接器v5.1.26。这里提到的选项是针对5.1.x连接器的:我将y一个最新版本的5.1连接器(除非我可以使用v8连接器???)哦,真的!