โอเค ฉันจะพยายามทำให้เรื่องนี้สั้นลง ฉันมีเว็บไซต์ 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, ฐานข้อมูลด้วย