0

好吧,我尽量保持简短。我有 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 和数据库一起使用。

4

2 回答 2

0

尝试像这样创建连接:

con = DriverManager.getConnection("jdbc:mysql:///dbname?useUnicode=true&characterEncoding=utf-8", "user", "pass");
于 2013-06-20T06:57:26.363 回答
0

您如何查看已插入的数据?

您打印到的控制台可能不支持 UTF-8 字符集。

于 2013-06-20T07:02:10.860 回答