繁体   English   中英

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

[英]Encoding issue while reading Paradox database using Java

我有Java应用程序(使用JDK 1.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(),然后将结果传递给新的String并在承包商中指定编码,但是效果也不好。

是否有人对缺少的东西有任何想法。

您没有说要使用哪个版本的Paradox表。 通过版本4.5悖论是基于dos的程序。 后来它成为Windows的悖论。 这些表是相似的,但是有所增强。

但是,自从回到早期的dos版本以来,Paradox就支持西里尔字母和其他字符集,以及以后的版本。 这些使用当时的技术“代码页”进行解释。 它们仍然是ascii表-可能在unicode之前。 我不确定以后。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM