1

我有读取 Paradox 文件 (*.db) 的 Java 应用程序(使用 JDK 1.7)。它适用于拉丁字符。我试图让这个应用程序正确显示西里尔字符,但不断得到不可编辑的结果。

连接数据库的原始代码:

Class.forName(DB_DRIVER);
String dbUrl = "jdbc:odbc:Driver={Microsoft Paradox Driver (*.db )};DBQ=" + workingDb + ";READONLY=true";
return DriverManager.getConnection(dbUrl);

我尝试在获取连接时传递其他属性:

java.util.Properties prop = new java.util.Properties();
prop.put("charSet", "windows-1251");            
return DriverManager.getConnection(dbUrl, prop);

然而那并没有做任何事情。我尝试将字符集指定为“UTF-8”,但这也不起作用。

读取 ResultSet 的原始代码如下所示:

String title = rs.getString(7)

但标题不可读。我也尝试使用 rs.getBytes() 然后将结果传递给 new String 并在构造函数中指定编码,但这也不起作用。

有没有人知道缺少什么。

4

1 回答 1

0

您没有说您使用的是哪个版本的 Paradox 表。Thru ver 4.5 paradox 是一个基于 dos 的程序。后来它变成了 Windows 的 Paradox。这些表是相似的,但有一些增强。

然而,一路回到早期的 dos 版本,Paradox 支持 Cyrillic 和其他字符集,以及后来的更多。这些是使用当时的技术“代码页”解释的。它们仍然是 ascii 表——可能在 unicode 之前。我不确定以后。

所以,我认为这个想法是实现 ascii 代码页。当然,这取决于最初输入数据的方式。这些使用扩展的 ascii 字符,尤其是 128-168 用于“国际”字符。

于 2011-12-27T18:59:12.000 回答