Отображать специальные символы, используя System.out.println
У меня возникли проблемы с отправкой или отображением текста со специальными символами из моего веб-сервиса в мою базу данных. На моем затмении я установил кодировку символов в UTF-8, но он все еще не позволяет мне отображать символы. Например, простая печать, например, код ниже
String test ="привет";
System.out.println(test);
ИЛИ
String test ="привет";
String query = "insert into communication (`test`) VALUES ('"+ test +"');
PreparedStatement preparedStmt1 = con.prepareStatement(query);
preparedStmt1.executeUpdate();
Результат на консоли, и если я отправлю это в свою базу данных, это??????. Как я могу правильно отобразить это на консоли и, надеюсь, в базе данных
Ответы
Ответ 1
Да, его XXI. века, и мы все еще боремся с вещами, такими как кодирование символов...
Мое первое предположение заключается в том, что либо:
- Ваша кодировка исходного файла может быть неправильной (вы используете инструменты сборки, такие как Maven? Возможно, потребуется установить исходную кодировку),
- Ваша консольная кодировка может быть неправильной (вы находитесь под Windows? По умолчанию консоль командной строки по умолчанию не UTF, ее локально зависимая, но с небольшим воспроизведением в реестре вы можете установить ее кодировку).
- Ваша кодировка БД может быть неправильной (что такое кодировка таблицы, можете ли вы это проверить?)
Ответ 2
Если вы используете Eclipse, то
- щелкните правой кнопкой мыши на проекте.
- Перейдите в раздел Свойства
- Выберите UTF-8 в "Текст
Кодировка файлов "
![enter image description here]()
Ответ 3
Посмотрите, работает ли это.
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(test);
Для хранения в БД используйте следующую команду для явного кодирования строки в UTF-8
String newString = new String(test.getBytes(), "UTF8");
Ответ 4
Возможно, вам нужно сначала декодировать строку символов в ISO-8859, а затем закодировать ее в UTF-8