Java:在mysql中插入重音字符

Java:在mysql中插入重音字符,java,sql,prepared-statement,non-ascii-characters,Java,Sql,Prepared Statement,Non Ascii Characters,如果我有来自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

如果我有来自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();
在db中,我会有一个奇怪的角色:一颗钻石,里面有一个问号

这个问题有什么解决办法吗

  • 验证您在MySQL数据库中使用的字符集。您可以尝试“
    SHOW CREATE TABLE xxxx
    ”打印正在使用字符集的表DDL
  • 验证您在JDBC驱动程序中使用的字符集。如果使用MySQL
    ConnectorJ,
    可以在JDBC url中设置字符集

  • 将您的连接url更改为以下内容:

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

    这将取决于您正在使用的字符集,尽管很难说如果硬编码,请尝试查看类文件的确切位置first@BobFlannigon我不明白我必须在类文件中查找…什么是用于创建表的CREATE语句?“名称”列需要有正确的编码(最好是unicode)才能支持所有重音字符。请使用所有代码编辑问题。。