Java + MySQL - проблемы PreparedStatement с кодировкой
Я получил эту программу, которая взаимодействует с 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, потому что, когда я готовлю оператор к выводу на печать, эти символы просто "????". Какие-либо предложения?
1 ответ
Решение
Попробуйте добавить characterEncoding=UTF-8
параметр до конца вашего URL соединения JDBC. Даже установить таблицу и столбец набор символов в UTF-8. Эта статья объясняет, как это сделать.