국규 9566

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
그림으로 나타낸 국규 9566-97 문자 집합의 구조. 위쪽에 초록색으로 표시된 부분이 중복된 한글(조선어문자) 6글자이다.

국규 9566(KPS 9566)은 조선민주주의인민공화국에서 국가 규격으로 지정한 유일한 소위 조선어 문자 집합문자 인코딩이며, 2003년에 제정된 국규 9566-2003이 최신이다. 국규 9566은 적어도 세 종류의 문자 집합 또는 인코딩을 정의하며 각각은 다음과 같다.

  • 국규 9566-93: 1993년에 제정된 문자 집합으로 그 뒤의 표준과 호환성이 없고 거의 사용되지 않는다.
  • 국규 9566-97과 9566-2000: 1997년에 제정되고 2000년에 개정된 문자 집합이다.
  • 국규 9566-2003: 2003년에 제정된 문자 인코딩으로, EUC-KP 인코딩을 기반으로 CP949와 비슷한 방법으로 나머지 현대 한글(조선어문자)들을 모두 수록한 것이다. 그 외에 문자 집합 자체에 약간의 수정이 있었다. (공식적으로 EUC-KP는 등록되어있지 않다.)

국규 9566-97과 9566-2000은 EUC-KP 문자 인코딩으로 사용되는데, 이는 EUC-KR과 비슷하며 KS X 1001을 국규 9566으로 바꾼 것이다. 국규 9566-2003은 EUC-KP에서 인코딩할 수 없는 현대 한글들을 정규 EUC 영역 바깥에 추가한 것이며 기본적으로는 이전판과 하위 호환성이 있다. 하지만 이 인코딩들을 지원하는 프로그램이 거의 없기 때문에 현실적으로는 EUC-KR 등을 대신 사용하며, 문자 집합 자체는 국제 표준 등에서 참조 용도로만 사용하는 경우가 많다.

구성[편집]

국규 9566-2000은 94×94 문자 집합이며, 정렬을 제외한 전체적인 구조는 KS X 1001과 유사하다. 각 행들은 다음과 같이 구성되어 있다.

  • 0x21 ~ 0x2C: 특수 문자 영역 (문장 부호, 그림 문자, 한글[조선어문자] 자모, 선 문자, 히라가나, 가타카나, 그리스 문자, 키릴 문자 등)
  • 0x2F: 사용자 정의 영역 A
  • 0x30 ~ 0x4C: 한글 영역. 자주 쓰이는 2679자를 조선민주주의인민공화국 자모 차례에 따라 배열했다.
  • 0x4D ~ 0x7E: 한자 영역. 4653자를 한글(조선어문자)과 같이 독음 순서대로 배열했다.
  • 0x4C행과 0x7E행의 0x50열부터는 각각 사용자 정의 영역 B·C이다.

국규 9566-2003에서 정의하는 기본 문자 집합은 2000년판의 문자 집합의 확장이며, 대략 다음과 같은 점이 다르다.

  • 0x2E행에 ISO/IEC 8859-1에는 있지만 포함되지 않은 문자들을 모두 추가했다. (예를 들어, ë는 ISO/IEC 8859-1에서 0xEB에 있고 국규 9566-2003에서 0xAEEB에 배당된다)
  • 유니코드와의 변환표를 4.0 버전에 맞춰서 변경하였다.
  • 몇몇 문자들이 변경되거나 사라졌다. 예를 들어 0x28행 0x26열에 배당되었던 켈빈 기호가 유로화 기호(€)로 바뀌었고, 0x2C행 0x4F열의 문자가 사라졌다.

국규 9566-2003의 문자 인코딩은 8비트 문자 인코딩이며, 코드 페이지 949와 유사하다.

  • 128보다 작은 바이트에 ASCII를 배당한다.
  • 128보다 크거나 같은 두 바이트에 기본 94×94 문자 집합을 배당한다. 각 글자는 행과 열에 128을 더한 값을 사용하며, 행과 열 번호가 32 이상이기 때문에 실제로는 두 바이트는 161부터 254 범위에 있다.
  • 기본 문자 집합에 없는 8493자의 현대 한글(조선어문자)을 조선민주주의인민공화국 자모 차례에 따라 배당한다. 이 문자들은 코드 페이지 949의 확장 한글 영역과 정확히 같은 곳에 위치해 있으며 첫째 바이트가 129부터 194까지인 것만 다르다.

국규 9566-2003에 할당된 16776자 중 총 22자가 현재 유니코드에 포함되어 있지 않고 그 중 16자는 특수 문자이다. 나머지 6자는 0x24행 0x68열부터 0x6D열까지 배치된 중복된 한글(조선어) 음절인 "김, 일, 성, 김, 정, 일"이며, 따라서 국규 9566은 유니코드와 왕복 변환(round trip)을 할 수 없다. 따라서 범용 문자 집합에다 이 글자들을 추가할 것이 요구되었으나 유니코드 컨소시엄은 2000년에 이를 거절하였다.[1][2]

주석[편집]

  1. http://std.dkuug.dk/jtc1/sc2/wg2/docs/n2182.pdf
  2. http://std.dkuug.dk/jtc1/sc2/wg2/docs/n2282.doc

바깥 고리[편집]