· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
조합형

한글 조합형 code table



1.1. 왜 조합형을 지원해야 하는가?

  • 한글의 효율적인 오토마타개발이나 폰트의 최소화를 위해서 노력하는것이 당연하다고 생각하신다면 맞을겁니다.
  • 완성형 코드는 입력기의 개발에 많은 테이블을 소요하지만 조합형은 테이블의 크기가 작은 상태에서 개발이 가능합니다.
  • 옛 조합형은 Unicode 로 대체가 가능하고 Unicode가 훨씬 다양한 조합력을 나타낼수 있기 때문에 이제는 거의 사라져 가는 추세입니다.

1.2. 옛 조합형 코드표 (조합형: 삼보, 대우, 현대, 쌍용, 큐닉스)

  • 일부 조합형을 독자적으로 개발하거나 개선된 코드변환을 위해서 미정의상태를 채움으로 처리해야 하는 경우가 있습니다.
  • 오래된 구어표시영역이 있으나 필자의 자료는 그 부분에 대해서는 충분히 열거할수 없기에 표시하지 않겠습니다.
    비트조합 (bit) 10진 코드 16진 코드 초성(순번) 중성(순번) 종성(순번)
    0 0 0 0 0 0 00 미정의 미정의 미정의
    0 0 0 0 1 1 01 채움 미정의 채움
    0 0 0 1 0 2 02 ㄱ (0x00) 채움 ㄱ (0x00)
    0 0 0 1 1 3 03 ㄲ (0x01) ㅏ (0x00) ㄲ (0x01)
    0 0 1 0 0 4 04 ㄴ (0x02) ㅐ (0x01) ㄳ (0x02)
    0 0 1 0 1 5 05 ㄷ (0x03) ㅑ (0x02) ㄴ (0x03)
    0 0 1 1 0 6 06 ㄸ (0x04) ㅒ (0x03) ㄵ (0x04)
    0 0 1 1 1 7 07 ㄹ (0x05) ㅓ (0x04) ㄶ (0x05)
    0 1 0 0 0 8 08 ㅁ (0x06) 미정의 ㄷ (0x06)
    0 1 0 0 1 9 09 ㅂ (0x07) 미정의 ㄹ (0x07)
    0 1 0 1 0 10 0A ㅃ (0x08) ㅔ (0x05) ㄺ (0x08)
    0 1 0 1 1 11 0B ㅅ (0x09) ㅕ (0x06) ㄻ (0x09)
    0 1 1 0 0 12 0C ㅆ (0x0a) ㅖ (0x07) ㄼ (0x0a)
    0 1 1 0 1 13 0D ㅇ (0x0b) ㅗ (0x08) ㄽ (0x0b)
    0 1 1 1 0 14 0E ㅈ (0x0c) ㅘ (0x09) ㄾ (0x0c)
    0 1 1 1 1 15 0F ㅉ (0x0d) ㅙ (0x0a) ㄿ (0x0d)
    1 0 0 0 0 16 10 ㅊ (0x0e) 미정의 ㅀ (0x0e)
    1 0 0 0 1 17 11 ㅋ (0x0f) 미정의 ㅁ (0x0f)
    1 0 0 1 0 18 12 ㅌ (0x10) ㅚ (0x0b) 미정의
    1 0 0 1 1 19 13 ㅍ (0x11) ㅛ (0x0c) ㅂ (0x10)
    1 0 1 0 0 20 14 ㅎ (0x12) ㅜ (0x0d) ㅄ (0x11)
    1 0 1 0 1 21 15 미정의 ㅝ (0x0e) ㅅ (0x12)
    1 0 1 1 0 22 16 미정의 ㅞ (0x0f) ㅆ (0x13)
    1 0 1 1 1 23 17 미정의 ㅟ (0x10) ㅇ (0x14)
    1 1 0 0 0 24 18 미정의 미정의 ㅈ (0x15)
    1 1 0 0 1 25 19 미정의 미정의 ㅊ (0x16)
    1 1 0 1 0 26 1A 미정의 ㅠ (0x11) ㅋ (0x17)
    1 1 0 1 1 27 1B 미정의 ㅡ (0x12) ㅌ (0x18)
    1 1 1 0 0 28 1C 미정의 ㅢ (0x13) ㅍ (0x19)
    1 1 1 0 1 29 1D 미정의 ㅣ (0x14) ㅎ (0x1a)
    1 1 1 1 0 30 1E 미정의 미정의 미정의
    1 1 1 1 1 31 1F 미정의 미정의 미정의

2. 옛 조합형과 완성형(KSX1001, 변경 전 KSC5601)간의 코드변환

2.1. Unicode 에서의 조합방식

  • Unicode에 대한 훌륭함을 보강해서 정리하고자 간단히 Unicode 조합방식에 대해서 ISO/IEC 10646:2003 문서를 참고하여 적어봅니다.
  • 첫가끝 코드는 Jamo(U01100 ~ U011FF)에 정의되며 초성(U01100~), 중성(U01161~), 종성(U011AB~) 로 구성됩니다.
  • 이미 조합되어 그 자체가 하나의 글자로 취급되는 코드는 Precomposed hangul syllable(U0AC00~D7A3)에 정의됩니다.
  • 이미 조합되어 있는 코드는 특정 규칙에 의거하여 각각 초성, 중성, 종성으로 분리해낼수가 있습니다. 대략 다음과 같은 공식을 이용합니다.
    • 우선 초성 index 갯수가 모두 18개, 중성 index 갯수는 21개, 종성 index 갯수는 28개만을 사용합니다.
      이미조합된글자(U0AC00~) = 0xAC00 + ((초성 * (21 * 28)) + (중성 * 28) + 종성);
      
  • 조합형 Unicode값 과 실제 사용하게 되는 index 값은 다음과 같습니다. (none이 뜻하는것은 없는것으로 간주한다는 의미로 사용됩니다.)
첫가끝 코드 Precomposed hangul syllable 에 사용되는 index
값 초성 중성 종성 초성 중성 종성
0 ᄀ ᅡ none ᄀ ᅡ none
1 ᄁ ᅢ ᆨ ᄁ ᅢ ᆨ
2 ᄂ ᅣ ᆩ ᄂ ᅣ ᆩ
3 ᄃ ᅤ ᆪ ᄃ ᅤ ᆪ
4 ᄄ ᅥ ᆫ ᄄ ᅥ ᆫ
5 ᄅ ᅦ ᆬ ᄅ ᅦ ᆬ
6 ᄆ ᅧ ᆭ ᄆ ᅧ ᆭ
7 ᄇ ᅨ ᆮ ᄇ ᅨ ᆮ
8 ᄈ ᅩ ᆯ ᄈ ᅩ ᆯ
9 ᄉ ᅪ ᆰ ᄉ ᅪ ᆰ
10 ᄊ ᅫ ᆱ ᄊ ᅫ ᆱ
11 ᄋ ᅬ ᆲ ᄋ ᅬ ᆲ
12 ᄌ ᅭ ᆳ ᄌ ᅭ ᆳ
13 ᄍ ᅮ ᆴ ᄍ ᅮ ᆴ
14 ᄎ ᅯ ᆵ ᄎ ᅯ ᆵ
15 ᄏ ᅰ ᆶ ᄏ ᅰ ᆶ
16 ᄐ ᅱ ᆷ ᄐ ᅱ ᆷ
17 ᄑ ᅲ ᆸ ᄑ ᅲ ᆸ
18 ᄒ ᅳ ᆹ ᄒ ᅳ ᆹ
19 ᄓ ᅴ ᆺ ᅴ ᆺ
20 ᄔ ᅵ ᆻ ᅵ ᆻ
21 ᄕ ᅶ ᆼ ᆼ
22 ᄖ ᅷ ᆽ ᆽ
23 ᄗ ᅸ ᆾ ᆾ
24 ᄘ ᅹ ᆿ ᆿ
25 ᄙ ᅺ ᇀ ᇀ
26 ᄚ ᅻ ᇁ ᇁ
27 ᄛ ᅼ ᇂ ᇂ
28 ᄜ ᅽ ᇃ ᇃ
29 ᄝ ᅾ ᇄ
30 ᄞ ᅿ ᇅ
31 ᄟ ᆀ ᇆ
32 ᄠ ᆁ ᇇ
33 ᄡ ᆂ ᇈ
34 ᄢ ᆃ ᇉ
35 ᄣ ᆄ ᇊ
36 ᄤ ᆅ ᇋ
37 ᄥ ᆆ ᇌ
38 ᄦ ᆇ ᇍ
39 ᄧ ᆈ ᇎ
40 ᄨ ᆉ ᇏ
41 ᄩ ᆊ ᇐ
42 ᄪ ᆋ ᇑ
43 ᄫ ᆌ ᇒ
44 ᄬ ᆍ ᇓ
45 ᄭ ᆎ ᇔ
46 ᄮ ᆏ ᇕ
47 ᄯ ᆐ ᇖ
48 ᄰ ᆑ ᇗ
49 ᄱ ᆒ ᇘ
50 ᄲ ᇙ
51 ᄳ ᇚ
52 ᄴ ᇛ
53 ᄵ ᇜ
54 ᄶ ᇝ
55 ᄷ ᇞ
56 ᄸ ᇟ
57 ᄹ ᇠ
58 ᄺ ᇡ
59 ᄻ ᇢ
60 ᄼ ᇣ
61 ᄽ ᇤ
62 ᄾ ᇥ
63 ᄿ ᇦ
64 ᅀ ᇧ
65 ᅁ ᇨ
66 ᅂ ᇩ
67 ᅃ ᇪ
68 ᅄ ᇫ
69 ᅅ ᇬ
70 ᅆ ᇭ
71 ᅇ ᇮ
72 ᅈ ᇯ
73 ᅉ ᇰ
74 ᅊ ᇱ
75 ᅋ ᇲ
76 ᅌ ᇳ
77 ᅍ ᇴ
78 ᅎ ᇵ
79 ᅏ ᇶ
80 ᅐ ᇷ
81 ᅑ ᇸ
82 ᅒ ᇹ
83 ᅓ
84 ᅔ
85 ᅕ
86 ᅖ
87 ᅗ
88 ᅘ
89 ᅙ

See also:



ID
Password
Join
The best prophet of the future is the past.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-04-17 14:19:57
Processing time 0.0212 sec