Java + MySQL - PreparedStatement在编码方面遇到麻烦

Mic*_*zov 2 java mysql encoding prepared-statement

我得到了这个与MySQL交互的程序.它可以正常工作,但在语句中出现非ASCII时会很奇怪.我正在使用预备声明:

public ResultSet executeQuery(Connection _conn, int _val1, String _val2) throws SQLException {
    PreparedStatement stmt = _conn.prepareStatement("SELECT c.name  FROM categories c,languages l WHERE c.language = l.id AND c.user = ? AND l.name = ?;");
    stmt.setInt(1, _val1);
    stmt.setString(2, _val2);
    return stmt.executeQuery();
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,除非我在_val2中使用类似"čččč"的东西.问题出在Java的某个地方,因为当我准备语句时,打印到stdout这些字符只是"????".有什么建议?

NIN*_*OOP 5

尝试将characterEncoding=UTF-8参数添加到JDBC连接URL的末尾.甚至将表和列字符集设置为UTF-8.文章介绍了如何做到这一点.