Q&A

  • [질문]utf8한글, 확장코드
안녕하세요.
오라클 디비에 utf-8로 데이터를 저장했어요.

toad로 보면 한글들이 3-byte씩 들어 있어요.
일반 한글은 richedit로 다 제대로 보입니다.
그런데 2수준 한자를 넣으면 이게 ?로 바뀌어 나옵니다.
widestring으로 잡아서 해도 안되고...

<!--CodeS-->

   TntRichEdit1: TTntRichEdit;

.....
                    TntRichEdit1.Font.Charset := DEFAULT_CHARSET;
                    TntRichEdit1.Font.Name := '새바탕';
                    TntRichEdit1.Text := qryViewCONTENTS.Value;
.....

<!--CodeE-->

contents의 내용에는 확장한자가 함께 들어있거든요.
아래한글 같은...
그런데 일반 한글은 안 깨지고 확장문자들만 깨집니다.
'새바탕' 아니고 '굴림'일 경우는 아래한글이 안 보이니까 ?로 나오는 게 맞는데
폰트를 바꿨는데도 이게 이미 ?로 바뀌어 있더군요.
디버깅을 해보면, qryViewCONTENTS.Value 값에 전각 물음표(?)가 들어 있더라구요.
표현할 폰트가 없다고, 미리 알아서 ?로 바꿔 주는 거 같은데... 너무 친절하게스리...
odbc 문제인지... 뭔지... 하루 종일 이거로 헤매는데, 답이 안 나오네요.
해결책 알고 계시면,,, 부탁합니다.
1  COMMENTS
  • Profile
    김완용 2010.07.27 18:39
    자답
    ODBC 사용하면 UTF-8 안 되고
    OLEDB사용해야 UTF-8 됩니다.
    OLEDB 사용하려면 오라클 CLIENT를 완전 깔아야 합니다.

    TNT MEMO 사용하면 편집도 잘 되는데
    TNT RICHEDIT에선 깨집니다.

    너무너무 헤맨 후 알아낸 것입니다.

    ADOConnection.ConnectionString :=
    Provider=MSDAORA.1;User ID=myid;Password=mypwd;Data Source=ORADB;Persist Security Info=True

    tnsnames.ora 파일에는 ORADB에 관한 게 기술되어 있어야 합니다.