한글 상용 조합형 인코딩
![](http://upload.wikimedia.org/wikipedia/commons/5/53/Johab-map.png)
한글 상용 조합형 인코딩 또는 상용 조합형은 2바이트 문자 인코딩으로, 그냥 조합형이라고도 불린다. 본래 삼보컴퓨터가 주도한 개방적인 산업 규격이며, 삼보 조합형 또는 KSSM 조합형 혹은 상용 조합형으로 불리다가, KS X 1001:1992 부속서 3에서 수용되어 표준화되었다. 표준화 이후 표준 조합형 또는 KS 조합형으로 구분하여 부르기도 하지만, 그냥 상용 조합형으로 통칭하기도 한다. 마이크로소프트에서는 이 인코딩을 표준화한 첫 번째 규격의 이름인 ks_c_5601-1992로 사용하고 있다.
완성형 한글 코드와 달리 5비트 단위로 자소를 조합하여 한글 글자 마디를 표현한다. 상용 조합형은 모든 현대 한글을 표현할 수 있으며 미완성 한글까지 2바이트로 표현할 수 있다. 하지만 둘째 바이트의 최상위 비트가 0일 수도 있기 때문에 문자열 검색 등에서 문제가 생길 수 있다. 도스 시절에 많이 사용되었으나, 한글 윈도 95에서 상용 조합형을 지원하지 않으면서 현재는 거의 사용되지 않는다.
구성[편집]
상용 조합형에서는 한글을 2바이트 코드로 표현하며, 최상위 비트는 1로 설정하고 초성, 중성, 종성에 각각 5비트씩 할당하여 차례로 조합한다.
코드 | 0 | 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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
초성 | - | 채움 | ㄱ | ㄲ | ㄴ | ㄷ | ㄸ | ㄹ | ㅁ | ㅂ | ㅃ | ㅅ | ㅆ | ㅇ | ㅈ | ㅉ | ㅊ | ㅋ | ㅌ | ㅍ | ㅎ | - | - | - | - | - | - | - | - | - | - | - |
중성 | - | - | 채움 | ㅏ | ㅐ | ㅑ | ㅒ | ㅓ | - | - | ㅔ | ㅕ | ㅖ | ㅗ | ㅘ | ㅙ | - | - | ㅚ | ㅛ | ㅜ | ㅝ | ㅞ | ㅟ | - | - | ㅠ | ㅡ | ㅢ | ㅣ | - | - |
종성 | - | 채움 | ㄱ | ㄲ | ㄳ | ㄴ | ㄵ | ㄶ | ㄷ | ㄹ | ㄺ | ㄻ | ㄼ | ㄽ | ㄾ | ㄿ | ㅀ | ㅁ | - | ㅂ | ㅄ | ㅅ | ㅆ | ㅇ | ㅈ | ㅊ | ㅋ | ㅌ | ㅍ | ㅎ | - | - |
특수문자와 한자는 위와 같이 조합되는 한글을 피하기 위하여 별도의 계산 과정을 거친다. 이는 Shift_JIS와 그 방법이 비슷하다.
- 행 번호에 0x191(특수문자의 경우, 0x30행 미만) 또는 0x176(한자의 경우, 0x4A행 이상)을 더한다. 이 값을 2로 나눈 몫을 첫 번째 바이트로 한다.
- 1에서 나온 값이 짝수인가 홀수인가에 따라, 열 번호에 0x3D를 더하거나(홀수) 0x21을 뺀다(짝수).
- 2에서 나온 값이 0x4E보다 작으면 0x31을 더하고, 아니면 0x43을 더해서 두 번째 바이트로 한다.
예를 들어 "위"는 초성·중성·종성 코드가 13, 23, 1이 되고, 2진법으로는 1 01101 10111 00001이 되므로 B6 E1
이라는 두 바이트로 표현된다. 그리고 "∞"는 KS X 1001에서 0x21행 0x44열에 있는 특수문자이므로, 첫째 단계에서 0x21 + 0x191 = 0x1B2, 둘째 단계에서 0x44 - 0x21 = 0x23, 셋째 단계에서 0x23 + 0x31 = 0x54가 되어 최종적으로 D9 54
라는 두 바이트로 표현된다.
코드 페이지 1361[편집]
코드 페이지 1361(CP1361)은 마이크로소프트 한글 윈도가 지원하는 코드 페이지이며, CP949와 같으나 상용 조합형을 사용하는 것이 다르다. 이 코드 페이지는 확장 완성형에 대한 비난이 거세져서 추가한 것이지만, 코드 변환을 빼고는 실제로 사용할 수 없다.
2019년 4월 기준, Windows 10(1803)의 명령 프롬프트에서 명령어 chcp 1361을 통해 지원한다.[1] 그러나, CMD의 기본 글꼴인 '래스터 글꼴'이 알맞지 않게 표시되며(KS X 1003 주소 부분에서 깨져버린다), 설정 메뉴에서 코드 페이지를 CP1361(한글 - 조합형)으로 설명하고 있지만, 명령 프롬포트 자체는 유니코드 모드로 작동한다(예를 들어 변환 직후에는 Current Code Page: 1361로 표시). 다른 점이 있다면, 한글 OS에서 표시하는 CP949 모드의 한글을 완벽하게 표시하고 있다.
같이 보기[편집]
각주[편집]
- ↑ 그런데 CP 버전은 오래된 것으로 보인다. 관리를 안 한 탓인지 일부 글꼴이 깨질 수 있다.
외부 링크[편집]
- 상용 조합형 대 유니코드 매핑 테이블 (KS X 1001:1997 기준)