使用Java阅读Paradox数据库时的编码问题
问题描述:
我有读取Paradox文件(* .db)的Java应用程序(使用JDK 1.7)。它适用于拉丁字符。我试图让这个应用程序正确显示西里尔字符,但是不断得到不可预期的结果。使用Java阅读Paradox数据库时的编码问题
原始代码连接到数据库:
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);
不过是没有做任何事情。我试图将charset指定为“UTF-8”,但这并没有起作用。
原始代码读取结果集是这样的:
String title = rs.getString(7)
但标题是无法读取。我也尝试使用rs.getBytes(),然后将结果传递给新的字符串,并在约束器中指定编码,但那也没有效果。
有没有人有任何想法缺少什么。
答
你不说你正在使用哪个版本的Paradox表。通过版本4.5悖论是一个基于dos的程序。后来它成为Windows的悖论。表格很相似,但有一些改进。
但是,一直回到早期的dos版本,Paradox支持西里尔文和其他字符集,以及更多。这些解释使用当时的技术“代码页”。他们仍然是ASCII表 - 可能在unicode之前。后来我不确定。
所以,我认为这个想法是实现ascii代码页。当然,这取决于数据是如何输入的。这些使用扩展的ascii字符,特别是128-168的“国际”字符。
任何人都可以给我至少一个想法? –