【发布时间】:2018-08-23 12:40:17
【问题描述】:
我在保留一些带有特殊字符的字符串时遇到问题,例如:Livaković。在数据库中,它被保存为 Livakovi?。我的 Jdbc 字符串如下:
jdbc:mysql://localhost:3306/MyDb?autoReconnect=true&useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8&useSSL=false
我的数据库字符集如下:-
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
谁能推荐?
谢谢,
【问题讨论】:
-
你为什么要这样混合编码?
-
正如 Kayaman 所提到的,您必须确保您的数据库字符集也可以支持这些字符。
character_set_connection只定义了字符的传输方式,character_set_database说明了它们的存储方式。也许 GUIDO 在类似问题上给我的答案可能会对您有所帮助:stackoverflow.com/a/26285517/896249 -
尝试同时使用
useUnicode=true&characterEncoding=utf8。许多其他答案都指定了它们。 -
还有edit你的问题,以显示
SHOW CREATE TABLE table_name的结果 -
@Kayaman 没找到你?
标签: java mysql jdbc unicode special-characters