如果从数据库获取的数据出现了中文乱码,可能是因为数据库字符集与应用程序字符集不一致导致的。下面是一些解决方法:
- 确认数据库字符集和应用程序字符集是否一致,例如都是UTF-8。
- 在连接数据库的代码中指定字符集,例如:
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8
- 在操作数据库时,使用正确的编码方式将数据写入数据库,例如:
String name = new String("中文".getBytes("UTF-8"), "ISO-8859-1");
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO tablename VALUES (?)");
pstmt.setString(1, name);
pstmt.executeUpdate();
- 在读取数据库数据时,使用正确的编码方式解析数据,例如:
ResultSet rs = stmt.executeQuery("SELECT name FROM tablename");
while (rs.next()) {
String name = new String(rs.getBytes("name"), "UTF-8");
System.out.println(name);
}