헤르메스 LIFE

[Source] Unicode 2.0 을 Unicode 1.2 로 변환 본문

Core Java

[Source] Unicode 2.0 을 Unicode 1.2 로 변환

헤르메스의날개 2010. 10. 20. 15:41
728x90
 /**
  * 현재 oracle 7 버전대는 unicode 1.2를 사용하고,
  * oracle 8.1.5 버전부터 unicode 2.0을 사용합니다.
  * 그리고 jdk1.2버전은 unicode 2.0을 사용하지요
  * 그래서 oracle 8.1.5에서 읽어들인 한글은 보이지만,
  * 7버전에서 읽어들인 한글은 unicode 버전차이로 ?표로 표시됩니다.
  * 때문에 oracle 7버전에서 한글을 지원받으려면 
  * DB에서 read할때는 unicode 1.2를 2.0으로, DB로 write할때는 unicode 2.0을 1.2로 
  * conversion 해주는 class를 만들어서 import하여 사용하면 됩니다.
  *
  * UniCode 2.0 을 UniCode 1.2 로 변환
  * @param uni20 변환할 문자 (UniCode 2.0)
  * @return String 변환된 문자 (UniCode 1.2)
  */
 public String convUni20ToUni12 (String uni20) {
  if (uni20 == null) return null; 
  int len = uni20.length(); 
  char [] out = new char[len]; 
  for (int i = 0; i < len ; i++) { 
   char c = uni20.charAt(i); 
   if (c < 0xac00 || c > 0xd7a3 ) { 
    out[i] = c; 
   } else { // Unicode 2.0 한글코드 영역 
    try { 
     byte [] ksc = String.valueOf(c).getBytes("KSC5601"); 
     if (ksc.length != 2) { 
      out[i] = '\ufffd'; 
      System.err.println ("Warning : Some of Unicode 2.0 Hangul Character was ignored."); 
     } else { 
      out[i]= (char) (0x3400 + ((ksc[0] & 0xff) - 0xb0) * 94 + (ksc[1] & 0xff) - 0xa1); 
     } 
    } catch (java.io.UnsupportedEncodingException ex) { 
     log(CLASS_NAME + ".convUni20ToUni12()","UniCode 1.2 변환을 실패했습니다."+ex.toString());
    } 
   } 
  } 
  return new String (out); 
 } 
728x90

'Core Java' 카테고리의 다른 글

[Source] 배열값 정렬하기  (0) 2010.10.20
[Source] Unicode 1.2를 Unicode 2.0 으로 변환  (0) 2010.10.20
[Source] Character Set Conversion  (0) 2010.10.20
[Source] String to Unicode  (0) 2010.10.20
[Source] Unicode To String  (0) 2010.10.20