Java 像ă这样的字符;和ţ;换成什么?在Mysql中

Java 像ă这样的字符;和ţ;换成什么?在Mysql中,java,mysql,jdbc,unicode,special-characters,Java,Mysql,Jdbc,Unicode,Special Characters,我在保留一些带有特殊字符的字符串时遇到了问题,例如:Livaković。在数据库中,它被保存为Livakovi?。我的Jdbc字符串如下所示: jdbc:mysql://localhost:3306/MyDb?autoReconnect=true&useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8&useSSL=false 我的DB字符集如下所示:- Mysq

我在保留一些带有特殊字符的字符串时遇到了问题,例如:Livaković。在数据库中,它被保存为Livakovi?。我的Jdbc字符串如下所示:

jdbc:mysql://localhost:3306/MyDb?autoReconnect=true&useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8&useSSL=false
我的DB字符集如下所示:-

Mysql版本是5.6

我已经在jdbc连接字符串中使用了useUnicode=true和characterSetResults=utf8,但在DB中仍然无法正确使用特殊字符

下面是show create的结果-

CREATE TABLE `table_name` (
`id` varchar(64) NOT NULL,
 `name` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
有人能建议吗


谢谢,

这是需要检查的几件事之一

尤其见

  • 要存储的字节是否编码为utf8/utf8mb4
  • 表中的列是字符集utf8(或utf8mb4)。(使用
    显示创建表
更多Java/JDBC注释:

?useUnicode=yes&characterEncoding=UTF-8
添加到JDBC URL(您当前有
characterSetResults


compileJava.options.encoding='UTF-8'

为什么要这样混合编码?正如Kayaman提到的,您必须确保数据库的字符集也能支持这些字符<代码>字符集连接仅定义字符的传输方式,
字符集数据库
说明字符的存储方式。也许GUIDO在一个类似问题上给我的答案可能会对您有所帮助:尝试同时使用
useUnicode=true&characterEncoding=utf8
。许多其他的答案都说明了这两个问题。还有你要显示
show CREATE TABLE\u name
@Kayaman的结果的问题,你没有明白吗?我已经用show CREATE TABLE更新了帖子。它使用utf8。我添加了一些东西。
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=UTF-8" %>

compileJava.options.encoding = 'UTF-8'
<form method="post" action="/your/url/" accept-charset="UTF-8">