2

我正在使用 MS Access & MySQL ,在访问输入这个词

  • کوردستان ی عیراق (这是使用 unicode 的库尔德语言)

我的代码是:

try{
      String path ="src\\Database.accdb";
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
      Connection c = DriverManager.getConnection(""
              + "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ="+path);
      Statement s = c.createStatement();
      ResultSet rs = s.executeQuery("select * from mytable");
      rs.next();
      jTextArea1.setText(rs.getString(1));

  }catch(Exception ex){
    JOptionPane.showMessageDialog(null, ex.getMessage());

  } 

访问输出是 ??????????????

但是使用 MYSQL,输出是 کوردستان ی عیراق

为什么 ??谢谢

4

3 回答 3

1

当您尝试建立连接时,您应该为属性设置适当的字符集,例如:

java.util.Properties prop = new java.util.Properties();
prop.put("charSet", "UTF8"); // Not tested..
Connection c = DriverManager.getConnection(
           "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ="+path, prop);

查看JDBC-ODBC 桥的文档以获取更多详细信息

于 2013-03-05T16:35:51.473 回答
1

如果您只是想从 MS Access 数据库中获取数据并且不需要运行复杂的查询,您可能需要查看Jackcess项目,这是一个用于打开 MS Access 文件的本地跨平台 Java API。它目前不支持运行 SQL 查询,但它确实让您无需通过(易碎的)jdbc-odbc 桥即可访问所有数据。它还支持使用索引(通过 IndexCursor)查找数据。

(免责声明,我是主要作者)。

于 2013-03-07T15:30:28.543 回答
0

来自微软论坛:

If your connection character set is utf8, then you should run this query right 
after connecting to DB:

SET NAMES 'utf8'; 

Also your DB and tables and columns should have utf8_general_ci or other type of 
utf8 collation.

希望这可以帮助

于 2013-03-05T16:31:35.140 回答