덕태님 감사. 한번 더 질문


[ 다음 글들 ] [ 이어서 글올리기(답하기) ] [ 자바 묻고 답하기 ]

글쓴이 :전응식 1998년 2월 26일 11:54:47

In Reply to: 데이타베이스 한글 문제 해결책의 버그 교정. posted by 김덕태 on 1998년 2월 25일 19:20:11:

김덕태님 질문에 답을 주어서 감사합니다.


일정비율로 한글이 깨지는 문제는
말씀하신대로 Oracle jdbc드라이버의 버그 같군요.


그래서 다른 방법으로 한글을 가져올려고 시도를 해 보았습니다.
이번에는 getUnicodeStream을 써보았습니다.
그런데 가져오는 것이 아래와 같은 코드로 가져와 한글이 또 말썽을
부리더군요.


<소스>
 InputStream input = results.getUnicodeStream(i) ; //Unicode Ascii BinaryStream
 String str = "" ;
 byte bytes[];
 int k=0;
 if(input==null) System.out.println("input null") ;
 try
 {
	 bytes = new byte[16];
	 while(true)
	 {
              bytes[k++]=(byte)input.read() ;
              if(k == 14) break ; 
         }
         str = new String(bytes); 
         System.out.println("BIN1 = "+str) ;
         System.out.println("BIN2 = "+fromUni12(str)) ;
         for(int p=0 ; p <16 ; p++)
         {
               //char c = str.charAt(p) ;
               System.out.print(Integer.toHexString(bytes[p])+",") ;
         }
 }
<결과>
입력내용 : 1abc 가나
ResultB1= oracle.jdbc.driver.OracleConversionInputStream@1ccef3
BIN1 = 1abc 45#
BIN2 = 1abc 45#
0,31,0,61,0,62,0,63,0,20,34,0,35,23,0,0,

위와 같이 Uni1.2로 리턴이 오는데 가의 경우
0x0034, 0x0000으로 인식을 하여 4로 리턴을 하고,
나의 경우 0x0035, 0x0023 으로 인식하여 5와 #을 리턴하여주는군요.


어떻게 하면 상위 바이트와 하위 바이트를 조합할수 있는지,
또 제가 무었을 잘못 가져왔는지 알고 싶습니다.


<참고>
getAsciiStram와 BinaryStream을 썼을때..
ResultB1= oracle.jdbc.driver.OracleConversionInputStream@1ccef3
BIN1 = 1abc #???
BIN2 = 1abc #???
31,61,62,63,20,0,23,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,
ffffffff,ffffffff,0,0,



다음 글들:



이어서 글올리기(답하기)

이름:
E-Mail:
제목:
내용:
관련 URL(선택):
URL 제목(선택):
관련 이미지 URL:


[ 다음 글들 ] [ 이어서 글올리기(답하기) ] [ 자바 묻고 답하기 ]