한글 입력에 관한 질문입니다.

czh의 이미지

나비 소스를 보면서 한글 입력에 관해 공부하고 있습니다.

제가 알고 있기로는 한글을 입력받을 때 바로 완성형으로 받을 수 없고

조합형이나 유니코드를 사용해서 한글코드를 만들고

그것을 완성형으로 변환하여 표시하는 것으로 알고 있습니다.

나비 초기 버전에는 유니코드를 완성형으로 변환해주는 함수와

변환테이블이 있었는데 후기 버전에는 없더군요.

후기 버전에서는 어떻게 완성형으로 변환해주는지 궁금합니다.

그리고 나비 초기버전 변환테이블을 보면 2000자 정도밖에 안되는

완성형을 쓰고있는데요. 여기에서 표시할 수 없는 한글들이 존재합니다.

그런데 한글입력 중에 만들어지는 한글.. 예를 들면

기차 에서 ㅏ 를 입력하기 전에 ㄱㅣ ㅊ(여기에도 안써지는군요)이 되는데요

이건 어떻게 표시하나요?

어설픈 지식으로 공부하려니 많이 힘드네요

많은 도움 부탁드립니다

krisna의 이미지

나비는 내부적으로 유니 코드를 사용합니다.

초기 버전에서는 UCS 코드에서 KSX1001로 변환하는 테이블을 사용했습니다.
물론 이 테이블은 EUC-KR 로캘인 경우만 변환이 가능한지 확인을 하는데 사용한 것입니다.
실제로 변환은 Xlib에서 해줍니다.

'ㅤㄱㅣㅊ' 이런 글자는 EUC-KR에서 사용할 수가 없죠, 따라서 애초에 조합되기 전에 확인을 해서 조합되지 않게 합니다. 쉽게 말해 표시하지 않았다는 것이죠.

그러나 나비는 처음부터 UTF-8을 타겟으로 했기 때문에 UTF-8인 경우에는 'ㅤㄱㅣㅊ'도 표시를 하고 출력합니다.

현재는 iconv를 사용해서 변환 가능한지 확인합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.