• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 1728
2010.04.19 (13:25:16)
아래와 같이 수정하여 테스트 해보시기 바랍니다.

변경전
   rd  = rows[i].getInputStream(dSet.indexOfColumn("N_BODY"))
   int c;
   while ((c = is.read()) != -1)
   buf.append((char)c);

변경후
   rd  = rows[i].getInputStream(dSet.indexOfColumn("N_BODY"))
   StringBuffer buff2 = new StringBuffer();
   byte[] buf = new byte[1024];
   while (true) {
         int bread = is.read(buf);
         if (bread == -1) break;
         buff2.append(new String(buf));
   }

>* 고객시스템명 : 삼성
>* GAUCE 버전 : 3.5
>* WAS 종류(WebLogic 등등) : WEBLOGIC 8.1
>* DB 종류 : ORACLE
>* 문의 유형(질문/요청/참조) : 질문
>* 내용 :
>BLOB 샘플을 사용해서 LONG 칼럼 처리를 하려고 합니다.
>샘플대로 잘 되는데..문제는 유니코드에서 한글이 깨지고 마네요.
>
>조회시에는 아래와 같이 getCharacterStream을 사용하면 유니코드의 손상없이 정상적으로 되는데..
>
>< 조회시 코드 >
>ResultSet rSet        = select.getResultSet();
>if (rSet.next()) {
>      Reader rd = rSet.getCharacterStream(1);
>      int str = 0;
>     while((str = rd.read()) != -1) { sb_text.append((char)str); }
>}
>
>하지만 입력/수정시 가우스데이터셋에서 CharacterStream을 사용할 수 없어고, InputStream을
>사요할 수 밖에 없어서 유니코드 문자열이 손상됩니다.
>
>< 입력/수정시 코드 >
>rd  = rows[i].getInputStream(dSet.indexOfColumn("N_BODY")) ;
>
>BLOB의 경우 이미지 같은 부분을 처리하니 상관 없지만, 게시판등 HTML형식의 처리를 위하여
>LONG type 컬럼을 사용했습니다.
>
>처리방안 문의드립니다.
>
 
Tag List
XE Login