การเข้ารหัสอักขระ Java ลิทัวเนีย

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


person Mindaugas    schedule 20.06.2013    source แหล่งที่มา
comment
ตาราง / คอลัมน์ฐานข้อมูลใช้ UTF8 ด้วยหรือไม่ ดูเหมือนว่าจะซ้ำกัน: stackoverflow.com/ คำถาม/3828818/   -  person Balint Bako    schedule 20.06.2013
comment
อาจซ้ำกับ ตัวอักษร Java lithuanian   -  person Raedwald    schedule 07.01.2014


คำตอบ (2)


ลองสร้างการเชื่อมต่อแบบนี้:

con = DriverManager.getConnection("jdbc:mysql:///dbname?useUnicode=true&characterEncoding=utf-8", "user", "pass");
person jtomaszk    schedule 20.06.2013

คุณดูข้อมูลที่คุณใส่ไว้อย่างไร?

อาจเป็นไปได้ว่าคอนโซลที่คุณกำลังพิมพ์ไม่รองรับชุดอักขระ UTF-8

person Java Devil    schedule 20.06.2013