使用java(SE)将阿拉伯字符插入mySQL DB

时间:2011-08-17 01:52:22

标签: java mysql

我有三个文本字段(ID,名称,地址),它反映了数据库表中的列我试图将阿拉伯字符插入到该表中,但它显示为“?????”

使用JDBC连接到数据库 我的数据库信息。 :MySQL Server 5.5.14社区
服务器字符集:latin1
Db characterset:utf8
客户端字符集:latin1
Conn.characteretet:latin1

我尝试使用以下代码对字符串进行编码:

private String ArEncode(String text){
    String txt="";

    try {

        Charset cset = Charset.forName("utf8");
        CharsetEncoder encoder = cset.newEncoder();
        CharsetDecoder decoder = cset.newDecoder();
        ByteBuffer buffer = encoder.encode(CharBuffer.wrap(text));
        txt=buffer.asCharBuffer().toString();        

    } catch (Exception ex) {
        Logger.getLogger(UserView.class.getName()).log(Level.SEVERE, null, ex);
    }
    return txt;
}

然后将返回的字符串“txt”插入到数据库

注意:当我尝试从netbeans直接将数值插入数据库时​​,它会被正确插入并且正确显示阿拉伯字符。

2 个答案:

答案 0 :(得分:4)

你为什么要这样做? mysql JDBC驱动程序的工作是在声明的数据库字符集中正确编码字符串。将数据库中的字符集设置为UTF-8,正确设置JDBC选项,只需插入普通的旧字符串。

答案 1 :(得分:0)

如果编码逻辑正常工作,则应该在txt中返回与text中完全相同的值,因此不需要它。

并且:将连接字符集设置为utf8 - JDBC将/应该处理其余的...