【问题标题】:Java: insert accented characters in mysqlJava:在mysql中插入重音字符
【发布时间】:2013-01-22 20:34:48
【问题描述】:

如果我有来自 java 的这个查询:

String query="insert into user (..., name, ...) values (..., 'à', ...)";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/Spinning?user=root");
PreparedStatement prest = con.prepareStatement(query);
prest.executeUpdate();

在数据库中我会有一个奇怪的字符:里面有一个问号的菱形。

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

【问题讨论】:

  • 这将取决于您正在使用的字符集,但如果硬编码尝试首先查看类文件,很难确切说明在哪里
  • @BobFlannigon 我不明白我必须在哪里查看....在类文件中?
  • 用于创建表的 CREATE 语句是什么?名称列需要具有正确的编码(最好是 unicode)以支持所有重音字符
  • 我用所有代码编辑问题..

标签: java sql prepared-statement non-ascii-characters


【解决方案1】:

将您的连接网址更改为以下内容:

jdbc:mysql://localhost/Spinning?user=root&useUnicode=true&characterEncoding=utf8

【讨论】:

    【解决方案2】:
    1. 验证您在 MySQL DB 中使用的字符集。您可以尝试使用“SHOW CREATE TABLE xxxx”打印使用字符集的表格 DDL。
    2. 验证您在 JDBC 驱动程序中使用的字符集。如果使用 MySQL ConnectorJ,,您可以在 JDBC url 中设置字符集。

    【讨论】:

      猜你喜欢
      • 2014-03-10
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 2010-11-25
      • 1970-01-01
      相关资源
      最近更新 更多