如何使用 jdbc 和 MySQL 正确设置 utf8 编码?
Posted
技术标签:
【中文标题】如何使用 jdbc 和 MySQL 正确设置 utf8 编码?【英文标题】:How to properly set utf8 encoding with jdbc and MySQL? 【发布时间】:2016-02-13 16:03:49 【问题描述】:JDBC 和 mysql 在我的项目中工作得很好,除了重音字符。 这是我用来访问数据库的 URL:
jdbc:mysql://localhost:3306/dbname?useUnicode=yes&characterEncoding=UTF-8
假设是resultSet = preparedStatement.executeQuery()
,然后是System.out.println(resultSet.getString("text_with_accents"));
。数据库中存储的是àèìòù
(请注意,我已经在数据库及其所有表中设置了正确的编码),但我得到的是?????
。
有没有办法解决这个问题?
【问题讨论】:
【参考方案1】:尝试更改您的网址,例如
url="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"
&
必须表示为 &
【讨论】:
@pr0gma:- 你能检查你的 my.cnf 看看你的文件是否有[client] default-character-set=utf8 [mysql] default-character-set=utf8
存在吗?
我没有 my.cnf。我应该创建一个吗?如果有,在哪里?
@pr0gma:- 它应该存在。您可以参考:***.com/questions/4292769/… 获取其位置
找到了 my.ini。仔细检查,该选项已在客户端和 mysql 部分中设置。
characterEncoding=utf8
--> characterEncoding=UTF-8
.【参考方案2】:
大概……
你有 utf8 编码的数据(好)SET NAMES latin1
生效(默认,但错误)
该列被声明为CHARACTER SET latin1
(默认,但错误)
【讨论】:
以上是关于如何使用 jdbc 和 MySQL 正确设置 utf8 编码?的主要内容,如果未能解决你的问题,请参考以下文章