通过mysql工作台插入表情符号有效,但不是通过java?

通过mysql工作台插入表情符号有效,但不是通过java?,java,mysql,character-encoding,emoji,Java,Mysql,Character Encoding,Emoji,通过MySQL Workbench查询,我能够在表中插入表情符号,但前提是我先设置名称 设置名称utf8mb4//每次启动服务器时只需执行一次 插入到testtable(testfield)值中('我不知道,但我可以确认f0 9f 92 96是字符U+1F496 Sparking HEART的UTF-8字节的正确序列,所以至少看起来UTF-8正在到达数据库。也许你需要在插入的同一连接中执行设置名称utf8mb4;,你使用的是什么版本的MySQLng?我刚刚安装了8.0.11,没有在连接url中做

通过MySQL Workbench查询,我能够在表中插入表情符号,但前提是我先设置名称

设置名称utf8mb4//每次启动服务器时只需执行一次

插入到testtable(testfield)值中('我不知道,但我可以确认
f0 9f 92 96
是字符U+1F496 Sparking HEART的UTF-8字节的正确序列,所以至少看起来UTF-8正在到达数据库。也许你需要在插入的同一连接中执行
设置名称utf8mb4;
,你使用的是什么版本的MySQLng?我刚刚安装了8.0.11,没有在连接url中做任何特殊的操作,也没有使用“设置名称”,我可以插入包括表情符号在内的unicode,没有错误。我注意到您正在执行
Class.forName(“com.msql.jdbc.Driver”)
哪种是设置连接器的旧方法,所以我猜您使用的是旧版本?jar文件中有一个
META-INF/services/java.sql.Driver
设置,所以您所要做的就是将jar文件放在类路径中并进行自我设置。它将自动使用
com.mysql.cj.jdbc.Driver
类。如果您是exp合法加载
com.mysql.jdbc.Driver
加载时,它应该在stderr上显示一条错误消息。
加载类“com.mysql.jdbc.Driver”。这是不推荐的。新的驱动程序类是“com.mysql.cj.jdbc.Driver”。驱动程序通过SPI自动注册,通常不需要手动加载驱动程序类
为什么在
pom.xml
中使用
5.1.6
而不是
8.0.11