像ă和ţ这样的字符变成了?在Mysql

时间:2018-08-23 12:40:18

标签: 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 Character Set

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

有人可以建议吗?

谢谢

1 个答案:

答案 0 :(得分:0)

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

尤其是参见question marks

  • 要存储的字节编码为utf8 / utf8mb4吗?
  • 表中的列是否为CHARACTER SET utf8(或utf8mb4)。 (使用SHOW CREATE TABLE。)

更多Java / JDBC注释:

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

<%@ 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">