使用Java读取Paradox数据库时的编码问题

使用Java读取Paradox数据库时的编码问题,java,character-encoding,internationalization,paradox,cp1251,Java,Character Encoding,Internationalization,Paradox,Cp1251,我有一个Java应用程序(使用JDK1.7)正在读取Paradox文件(*.db)。它与拉丁字符配合得很好。我试图使这个应用程序正确显示西里尔文字,但不断得到无法读取的结果 连接到数据库的原始代码: Class.forName(DB_DRIVER); String dbUrl = "jdbc:odbc:Driver={Microsoft Paradox Driver (*.db )};DBQ=" + workingDb + ";READONLY=true"; return DriverManag

我有一个Java应用程序(使用JDK1.7)正在读取Paradox文件(*.db)。它与拉丁字符配合得很好。我试图使这个应用程序正确显示西里尔文字,但不断得到无法读取的结果

连接到数据库的原始代码:

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(),然后将结果传递给新字符串,并在constractor中指定编码,但效果并不理想


有人知道遗漏了什么吗

您没有说您使用的是哪个版本的悖论表。通过版本4.5 paradox是一个基于dos的程序。后来,它成为Windows的悖论。这些表很相似,但有一些改进

然而,回到早期的dos版本,Paradox支持西里尔字母和其他字符集,以及更晚的字符集。这些都是用“代码页”来解释的,这是当时的一种技术。它们仍然是ascii表——可能在unicode之前。我不确定以后会怎么样


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

有人能告诉我至少一个想法吗?