【问题标题】:How to properly set utf8 encoding with jdbc and MySQL?如何使用 jdbc 和 MySQL 正确设置 utf8 编码?
【发布时间】: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"));。数据库中存储的是àèìòù(请注意,我已经在数据库及其所有表中设置了正确的编码),但我得到的是?????

有没有办法解决这个问题?

【问题讨论】:

    标签: java mysql jdbc encoding utf-8


    【解决方案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:- 它应该存在。您可以参考:stackoverflow.com/questions/4292769/… 获取其位置
    • 找到了 my.ini。仔细检查,该选项已在客户端和 mysql 部分中设置。
    • characterEncoding=utf8 --> characterEncoding=UTF-8.
    【解决方案2】:

    大概……

    • 你有 utf8 编码的数据(好)
    • SET NAMES latin1 生效(默认,但错误)
    • 该列被声明为CHARACTER SET latin1(默认,但错误)

    【讨论】:

      猜你喜欢
      • 2013-08-06
      • 2020-04-02
      • 2012-09-01
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 2020-07-20
      • 2019-05-28
      相关资源
      最近更新 更多