1

我有讀取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(),然後將結果傳遞給新的字符串,並在約束器中指定編碼,但那也沒有效果。

有沒有人有任何想法缺少什麼。

+0

任何人都可以給我至少一個想法? –

回答

0

你不說你正在使用哪個版本的Paradox表。通過版本4.5悖論是一個基於dos的程序。後來它成爲Windows的悖論。表格很相似,但有一些改進。

但是,一直回到早期的dos版本,Paradox支持西里爾文和其他字符集,以及更多。這些解釋使用當時的技術「代碼頁」。他們仍然是ASCII表 - 可能在unicode之前。後來我不確定。

所以,我認爲這個想法是實現ascii代碼頁。當然,這取決於數據是如何輸入的。這些使用擴展的ascii字符,特別是128-168的「國際」字符。