유니코드와 한글

유니코드에서 한글은 크게 다음 영역에 할당되어 있다. (5.2 기준)

  • 합쳐지지 않는 문자들
    • Hangul Compatibility Jamo (U+3130..U+318F)
    • Hangul Syllables (U+AC00..U+D7AF)
  • 합쳐지는 문자들 (유니코드 5.2에서 옛한글 자모가 크게 추가됨)
    • Hangul Jamo (U+1100..U+11FF)
    • Hangul Jamo Extended-A (U+A960..U+A97F)
    • Hangul Jamo Extended-B (U+D7B0..U+D7FF)

왜 이렇게 이중 체계가 갖춰졌냐 하면, 전자는 KS X 1001 호환성에 중점을 둔 것이고 (물론 중간에 빠뜨린 현대한글은 없도록 재조정했지만) 후자는 유니코드 본연(?)의 철학에 충실한 것이다. 이 밖에도 U+FFxx 쪽에 있는 반각 한글도 있긴 하지만 아무도 안 쓴다. 신정식님 등이 KS X 1001 호환시킨다면서 왜 Syllables 영역에 현대 한글을 모조리 넣었는지(2350자가 아니라)를 비판한 적이 있는데 사실 안 넣는 것도 뭐하긴 하니까 일단 아주 잘못된 선택은 아닌 것으로 보인다.

아는 사람이 많지는 않지만, 본래 유니코드 2.0 이전까지만 해도 한글은 KS X 1001, KS X 1002 및 기타 추가 문자 집합에 기반하여 할당되어 있어서 현대 한글을 모두 나타낼 수 없었다! (1.1 때 할당된 위치는 U+3400..4DFF였다.) 그 뒤 대한민국의 적극적인 로비로 모든 현대 한글이 유니코드에 포함되면서 코드가 완전히 바뀌었는데 이 때문에 유니코드 2.0과 그 이전 버전은 서로 호환되지 않는다. 아마도 유니코드에서 코드 위치가 가장 크게 바뀐 사례일 듯.

날개셋은 한 때 처리의 편의를 위해 초성·중성·종성 채움 문자를 유니코드와 다른 위치(이를테면, 초성 채움은 U+10FF)에 넣은 적이 있지만 유니코드 5.2의 도래로 더 이상 자모 순서에 의미가 없게 되면서 원래 위치로 되돌렸다.


도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2011-05-30 18:25 | 외부 편집기