Проблема кодировки на Java сервере (mysql)

202
22 января 2018, 07:50

Есть сервер на Java. БД mysql. Так создал базу данных:

CREATE DATABASE `my_db` CHARACTER SET utf8 COLLATE utf8_general_ci;

После, если ввожу в командную строку команды insert into, все окей, но вот если я пытаюсь ввести в программе русские символы, то вместо букв выходят вопросы.

Вот код простого запроса на сервер. Может тут что нибудь нужно написать?

public static void main(String[] argv) {
      try {
          Class.forName("com.mysql.jdbc.Driver");
          System.out.println("connect");
          Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
          Statement statement = conn.createStatement();
          statement.executeUpdate("INSERT INTO `msg` (`text`)VALUES('текс какой нить');");
      } catch (ClassNotFoundException | SQLException ex) {
          Logger.getLogger(DBJava.class.getName()).log(Level.SEVERE, null, ex);
          System.out.println("cath:".concat(ex.getMessage()));
      }
    System.out.print("end");
  }
}

Пробовал перекодировать строку

String str = new String("текс какой нить".getBytes("utf8"));
Answer 1

Не могу добавить комментарий, пишет "Чтобы оставить комментарий, у вас должно быть 50 баллов репутации"

Вообщем, возможно, что ваш файл.java с методом main в другой кодировке. Откройте его notepad++ и переконвертируйте в utf8 без bom.

Answer 2

Переустановил сервер на последний и вроде все в норме

READ ALSO
Определить путь для выполнения

Определить путь для выполнения

Нахожусь в папке C:\exampleФайл Example

213
java webapp инициализация BD

java webapp инициализация BD

С целью изучения Servlet/JSP пишу простенькое java webappВ одном из туториалов реализована инициализация BD в классе наследнике ServletContextListener в методе...

201
Почему не работает клик у awt.Robot?

Почему не работает клик у awt.Robot?

Есть код который по задумке должен выделять текст так как это делает человек мышкойНо почему-то он не срабатывает, сама мышка движется а выделения...

213