我得到了这个与 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();
}
除非我在 _val2 中使用类似“čččč”的内容,否则它工作得很好。问题出在 Java 中的某个地方,因为当我准备语句并将其打印到标准输出时,这些字符只是“????”。有什么建议吗?
最佳答案
尝试将 characterEncoding=UTF-8
参数添加到 JDBC 连接 URL 的末尾。甚至将表和列字符集设置为UTF-8。这个article解释了如何做到这一点。
关于Java + MySQL -PreparedStatement 编码遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17124563/