如何使用 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 编码?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JDBC 从 Mysql 中检索正确编码的数据

UICollectionViewCompositionalLayout 不正确的项目大小

如何修改mysql url链接指定时区

jdbc读取资源文件

Google Apps 脚本/JDBC/MySQL

如何检查mysql连接的默认端口号?连接不工作! jdbc 连接