Я пишу приложение (использует UTF-8), которое нужно читать/записывать во вторую базу данных внешнего приложения (использует ISO-8859-1).Как закодировать строку в UTF-8 из ResultSet, закодированной в latin1
try {
// data in latin1
String s = rs.getString("sAddrNameF");
System.out.println(s); // shows "Adresse d'exp�dition"
byte[] data = s.getBytes();
String value = new String(data, "UTF-8");
System.out.println("data in UTF8: " + value);
// The expected result should be "Adresse d'expédition"
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Этот код не работает, мне также нужно выполнить обратное преобразование (запись в базе данных). Если кто-то знает изящное решение для работы с разными кодировками в одном приложении, пожалуйста, дайте мне знать, я ценю это.
Я использую UTF-8, то IntelliJ использует UTF-8 в качестве стандартного –
любой трюк для открытия кодировку файла? потому что я просто восстанавливаю резервную копию сценария базы данных. 'mysql -uroot -p
Попробуйте' System.out.println («é \ u00E9»); 'Только если эти' éé' правильно показаны, возникает проблема. Консоль ненадежна, поскольку использует собственную кодировку. Неправильный подход к использованию с байтами. Кодирование протокола передачи java JDBC. –