2011-12-20 31 views
1

我維護一個針對8位charset oracle數據庫的Java EE Web應用程序。在UNICODE中顯示整個ORACLE 8位CHARSETS

該應用程序將在國外使用,我希望能夠檢查字符串(例如UNICODE正則表達式,以及Java和Javascript),以查看它們是否適合數據庫CHARSET。

GDK全局化開發工具包中的一個函數給出了oracle字符集的等效Java名稱 - 我認爲它是ISO-8859-15-。但我不確定信件是否準確。

我想要的是顯示整個字符集-NOT ISO ...,但ORACLE一個char字符使用Java和Javascript,甚至顯示UNICODE點並分辨控制字符從可打印的。

Oracle的GDK爲此做了一個功能?

謝謝。

回答

0

我想我找到了! (Eureka!)

一個小小的JAVA JDBC程序導致了ISO-8859-1中與ISO-8859-1相同的字符(順便說一句,我已經瞭解到ISO-8859-1佔據了UNICODE中的0x00到0xff)。

程序輸出:

CHR:164 UNICODE:8364歐元符號

CHR:166 UNICODE:352

CHR:168 UNICODE:353

CHR:180 UNICODE:381

CHR:184 UNICODE:382

CHR: 188 UNICODE:338

CHR:189 UNICODE:339

CHR:190 UNICODE:376

程序代碼(不使用GDK在所有):

注意:語句「SELECT CHR(我使用nchar_cs)FROM DUAL「只給了相同的數字...爲什麼?

for(int i=0; i<256; i++) 
    { 
    Statement select = con.createStatement(); 
    ResultSet result = select.executeQuery("select CHR(" + i +") from DUAL"); 
    while(result.next()) 
    { 
     int unicodePoint = result.getString(1).codePointBefore(1); 
     //int unicodePoint = result.getString(1).codePointAt(0); 
     if (unicodePoint != i) 
     System.out.println("CHR: " + i + "\tUNICODE: " + unicodePoint); 
    } 
    result.close(); 
    result = null; 
    select.close(); 
    select = null; 
    }