【问题标题】:Reading Unicode data from an Access database using JDBC使用 JDBC 从 Access 数据库中读取 Unicode 数据
【发布时间】:2010-11-30 20:16:49
【问题描述】:

我有一个 MS-Access 数据库,我使用 JDBC(我认为是 JDBC-ODBC 桥)在 Java 中连接到该数据库。我的访问数据库有一些希伯来语的值。

当我尝试使用 String str = rs.getString(1)(rs 是一个 RowSet)读取这些值时,我得到的字符串只是一串问号。

我在希伯来语中有其他字符串,我使用字符串文字在 Java 代码中设置了这些字符串,它们工作正常。所以我很确定问题出在从数据库中读取。

我对这整件事很陌生,所以我很容易错过一些愚蠢的东西……我在谷歌上搜索了一段时间,没有找到任何东西,除了有人说有这种机会不支持的东西(比如说 JDBC-ODBC 桥在 Unicode 方面有一个错误,但它是从 2005 年开始的,所以谁知道呢?)。

如果有任何帮助,我将不胜感激,谢谢。

【问题讨论】:

    标签: java ms-access jdbc odbc


    【解决方案1】:

    您是否尝试在调用查询之前设置 charSet?

    参考:https://docs.oracle.com/javase/1.5.0/docs/guide/jdbc/bridge.html。

    【讨论】:

    • 我之前的评论好像被删除了?不知道为什么。我尝试将 charSet 设置为各种内容(包括 utf-8 和 utf-16)。他们要么没有工作,要么给了我一个 IllegalArgumentException。但是,使用您的链接,我尝试了另一种编码,这似乎成功了(windows-hebrew)。这是正确的工作方式吗?在我看来,我更喜欢 unicode 而不是直接指定它是希伯来语的。
    • 嗯... UTF8 应该可以工作!我将 utf8 用于波斯语字符。请访问支持的编码了解更多详情:java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html
    • 不,只是不工作。当我从 windows-hebrew 切换到 UTF8 时,我得到字符串 ????再次。为了确保我理解,我唯一需要做的就是向 JDBC 传递一个额外的参数 - (charSet, "UTF8"),就这样吗?那我拿回来的字符串应该没问题吧?
    • 如果你的数据当然是 UTF8 的话!但是,在您的情况下,如果所有数据都是希伯来语,并且 windows-1255/windows-hebrew 编码正在工作,那么您不必担心 UTF8。抱歉,我错过了所有数据可能都是希伯来语的事实。
    猜你喜欢
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    相关资源
    最近更新 更多