질문을 구체적으로 하지못하여 죄송합니다.
지금 sqlite에 다국어자료를 입출력하는 부분을 코딩하고 있는데 다음과 같은 방식으로 시험했을 때 한글이 깨졌습니다.
word문서
Friend
친구
朋友
wrd : widestring;
querystr : widestring;
...
// sqlite가 utf8, utf16만을 지원하기 때문에 utf8로 변환합니다.
wrd := utf8encode(worddocument.range.words.item(1).text);
querystr:='insert into list values(' + '''' + wrd + ''''+ ');' ;
sqlite3_exec(db, querystr, nil, nil, errmsg);
출력할 때는 callback함수에서 utf8decode함수를 리용했습니다.
출력결과는
Friend
??
로 한글과 중문이 다 깨집니다.
tnt를 쓰는 경우 tnt가 unicode문자렬을 돌려주므로
wrd := utf8encode(editTnt.text);
querystr:='insert into list values(' + '''' + wrd + ''''+ ');' ;
sqlite3_exec(db, querystr, nil, nil, errmsg);
로 입출력하면 한글이 정확히 표시됩니다.
제가 알고싶은것은 우의 경우와 같이 tnt를 거치지않고 자료가 들어오는 경우 처리방법입니다.
초보인지라 너무 무리한 질문을 드려 죄송합니다.
|