使用JDBC从Access数据库读取Unicode数据

3
我有一个 MS-Access 数据库,在 Java 中使用 JDBC(我认为是 JDBC-ODBC 桥)连接。我的 Access 数据库中有一些希伯来语的值。
当我尝试使用 String str = rs.getString(1)(rs 是 RowSet)读取这些值时,我得到的字符串只是一串问号。
我的 Java 代码中有其他希伯来语字符串,我使用字符串字面量设置它们,它们可以正常工作。所以我很确定问题特别是在从数据库中读取数据。
我对这整个事情非常陌生,所以我很容易忽略一些愚蠢的东西…… 我在 Google 上搜索了一段时间,没有找到任何信息,除了有些人说这种情况可能不受支持(比如说,JDBC-ODBC 桥与 Unicode 相关的错误,但那是 2005 年的事情,谁知道呢?)。
感谢任何帮助,谢谢。
1个回答

2

1
我的以前的评论好像被删除了?不确定为什么。我尝试将charSet设置为不同的值(包括utf-8和utf-16)。它们要么不起作用,要么会给我一个IllegalArgumentException。然而,使用您提供的链接,我尝试了另一种编码,似乎解决了问题(windows-hebrew)。这是正确的工作方式吗?对我来说,我更喜欢unicode而不是直接指定它是希伯来语。 - Edan Maor
嗯...UTF8应该可以工作!我使用utf8来处理波斯字符。请访问支持的编码以获取更多详细信息:http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html - Mohammad
不好意思,它还没有起作用。当我从windows-hebrew切换到UTF8时,我再次获得了一堆????的字符串。为了确保我理解,我需要做的唯一一件事就是向JDBC传递一个额外的参数 - (charSet, "UTF8"),然后这样就可以了吗?那么我收到的字符串应该没问题了吗? - Edan Maor
好的,当然前提是你的数据是UTF8格式!但是在你的情况下,如果所有的数据都是希伯来语,并且windows-1255/windows-hebrew编码可以正常工作,那么你就不用担心UTF8了。很抱歉我没有注意到所有的数据可能都是希伯来语。 - Mohammad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接