我正在编写一款应用程序(使用UTF-8编码),需要读写另一个外部应用程序的第二个数据库(使用ISO-8859-1编码)。
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();
}
这段代码无法正常运行,而且我仍需要进行相反的转换(写入数据库)。如果有人知道在同一个应用程序中处理不同编码的优雅解决方案,请告诉我,我会非常感激。
mysql -uroot -p < dbscript.sql
- Wellington SouzaSystem.out.println("é\u00E9");
,只有当这些éé
能够正确显示时,才会出现问题。控制台不可靠,因为它使用自己的编码方式。在这里调整字节是错误的方法。更多地涉及到 Java JDBC 驱动程序传输协议的编码方式。 - Joop Eggen