2011-12-20 2 views
1

8 비트 charset oracle 데이터베이스에 Java EE 웹 응용 프로그램을 유지 관리합니다.유니 코드에서 전체 ORACLE 8 비트 문자 표시

해외에서 응용 프로그램이 사용되며 UNICODE regexps, Java 및 Javascript와 같은 문자열 검사를 통해 데이터베이스 CHARSET에 맞는지 확인하고 싶습니다.

GDK의 한 기능인 - 개발자가 제공하는 Java-는 오라클 charset과 동일한 Java 이름을 제공합니다. ISO-8859-15라고 생각합니다. 그러나 나는 그 서한이 정확한지 확신하지 못한다.

내가 원했던 것은 전체 charset -NOT ISO ...를 표시하는 것이지만 char로 ORACLE one-char을 사용하여 Java와 Javascript에서 모두 유니 코드 포인트를 표시하고 제어 문자를 인쇄 가능한 것들.

오라클의 GDK에는 이러한 목적을위한 기능이 있습니까?

감사합니다.

답변

0

나는 그것을 발견했다고 생각합니다! (유레카!)

약간의 JAVA JDBC 프로그램으로 인해 ISO-8859-15의 문자가 ISO-8859-1과 정확히 일치합니다. (그런데 ISO-8859-1은 UNICODE에서는 0x00에서 0xff).

프로그램 출력 :

CHR 164 UNICODE : 8,364유로 기호

CHR : 166 UNICODE 352

CHR : 168 UNICODE : 353

CHR 180 UNICODE 381

CHR : 184 유니 코드 : 382

CHR : 188 유니 코드 : 338

CHR : 189 유니 코드 : 339

CHR : 190 유니 코드 (모든 GDK를 사용하지 않는) 376

프로그램 코드 :

참고 : 문 "(CHR을 선택 나는 nchar_cs를 사용하여) 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; 
    }