한글 상용 조합형 인코딩
위키백과 ― 우리 모두의 백과사전.
한글 상용 조합형 인코딩 또는 상용 조합형은 KS X 1001:1992의 부속서 3에서 설명하고 있는 8비트 문자 인코딩으로, 한글 조합형 인코딩의 일종이며 그냥 조합형이라고도 불린다. 이 인코딩은 KS X 1001에 기반하고는 있지만 한글 영역을 사용하지 않고 대신 기계적인 조합 방법으로 한글을 표현한다. 마이크로소프트에서는 이 인코딩을 설명한 첫 표준의 이름인 "ks_c_5601-1992"로 사용하고 있다.
상용 조합형은 모든 현대 한글을 표현할 수 있으며 미완성 한글까지 2바이트로 표현할 수 있다. 하지만 둘째 바이트의 최상위 비트가 0일 수도 있기 때문에 문자열 검색 등에서 문제가 생길 수 있다. 도스 시절에 많이 사용되었으나 윈도 95에서 상용 조합형을 지원하지 않으면서 현재는 거의 사용되지 않는다.
목차 |
[편집] 구성
상용 조합형은 EUC-KR과 같이 KS X 1003을 128보다 작은 바이트에, KS X 1001을 나머지 영역에 배당한다. 한글(한글 자모 영역도 포함)은 첫 바이트의 최상위 비트가 설정된 두 바이트(16비트)로 표현하며, 첫 바이트의 최상위 비트를 뺀 나머지 15비트는 순서대로 초성, 중성, 종성에 다음과 같이 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와 같으나 상용 조합형을 사용하는 것이 다르다. 이 코드 페이지는 확장 완성형에 대한 비난이 거세져서 추가한 것이지만, 코드 변환을 빼고는 실제로 사용할 수 없다.
[편집] 같이 보기
[편집] 바깥 고리
- 상용 조합형 대 유니코드 매핑 테이블 (KS X 1001:1997 기준)