好吧,我尽量保持简短。我有 Java 网站和 MySQL 数据库。一切都使用 UTF-8 字符集。问题是,如果我尝试将立陶宛字母插入数据库,所有像“ą č ę ė į ų ū”这样的字母都会转换为问号。
Insert code:
public static boolean addUser(UserEntity userEntity) {
Connection con = getDataBaseConnection();
PreparedStatement statement = null;
try {
if (userEntity.isIsActive()) {
booleanInt = 1;
} else {
booleanInt = 0;
}
if (con != null && !con.isClosed()) {
statement = con.prepareStatement("INSERT INTO users (login,"
+ " firstName,"
+ " lastName,"
+ " personalId,"
+ " isActive,"
+ " password)"
+ "VALUES(?,?,?,?,?,?)");
statement.setString(1, userEntity.getLogin());
statement.setString(2, userEntity.getFirstName());
statement.setString(3, userEntity.getLastName());
statement.setString(4, userEntity.getPersonalId());
statement.setInt(5, booleanInt);
statement.setString(6, userEntity.getPassword());
System.out.println(statement.toString());
//statement.executeUpdate();
return statement.execute();
}
} catch (Exception ex) {
System.out.println(ex);
} finally {
closeConnection(con);
return false;
}
如果我们为 userEntity.getLogin 打印输出,它会按原样打印出带有字母的所有内容。让我们说它的 Mažeikiai。如果我们打印出准备好的 SQL 语句,它将被替换。Java 也可以与 UTF-8、GlassFish 和数据库一起使用。