GBK의 레이아웃 (아래에서 이 다이어그램의 더 큰 복사본 참조) | |
| MIME / IANA | GBK |
|---|---|
| 다른 이름 | CP936, MS936, windows-936, csGBK |
| 언어 | 웹 브라우저는GB 18030으로 디코딩하며 모든 언어를 지원하지만, 인코딩(및 기타 소프트웨어 디코더)은 주로간체자에 사용되며번체자,일본어,영어,러시아어 및 (부분적으로)그리스어도 지원한다. |
| 표준 | GBK 1.0 |
| 분류 | 확장 ASCII,[a]가변 너비 인코딩,CJK 인코딩 |
| 상위 인코딩 | EUC-CN |
| 이전 인코딩 | GB 2312 |
| 다음 인코딩 | GB 18030 |
| |
GBK(Guójiā Biāozhǔn Kuòzhǎn)는중화인민공화국에서 사용되는간체자용GB 2312문자 집합의 확장이다. 여기에는GB 13000.1-93, 즉 ISO/IEC 10646:1993 또는 유니코드 1.1에 있는 모든 통합한중일 통합 한자가 포함된다. 1993년 초기 출시 이후, GBK는 마이크로소프트에 의해코드 페이지 936/1386으로 확장되었고, 이는 다시GBK 1.0으로 확장되었다.GBK는 또한 마이크로소프트 매핑의 IANA 등록 인터넷 이름이기도 하다.[1] 이는 주로 0x80의 단일 바이트유로 기호에서 다른 구현과 다르다.
GB는 중국어로 국가 표준을 의미하는궈뱌오(Guójiā Biāozhǔn)를 줄인 말이며, K는 확장(扩展 kuòzhǎn)을 의미한다. GBK는 구 표준인GB 2312를 번체자로 확장했을 뿐만 아니라, 1981년GB 2312가 제정된 이후 간략화된 한자도 포함했다. GBK의 등장으로 전 중국 총리주룽지의 이름에 있는 镕 (róng) 글자처럼 이전에는 표현할 수 없었던 특정 이름이 이제 표현 가능하게 되었다.[2]
2022년 10월 기준[update], GBK는 중국 및 관련 지역에서 사용되는 인코딩 중 세 번째로 인기 있는 인코딩이며(UTF-8 및 하위 집합GB 2312 다음), 웹 서버의 1.9%가 GBK를 선언하는 페이지를 제공한다.[3] 그러나 모든 주요 웹 브라우저는 Safari와 Edge에서GB_2312 레이블을 제외하고 GB2312로 표시된 문서를 GBK로 표시된 것처럼 디코딩한다.[4] 함께, GBK와GB 2312 인코딩은 중국 및 관련 지역에서 총 5.5%의 점유율을 차지한다.[3] 전 세계적으로 GBK는 전체 웹 페이지의 0.07% 미만이며 GBK+GB2312는 0.2%를 차지한다.[5]
1993년, 유니코드 1.1 표준이 발표되었으며,중국 대륙,중화민국,일본,한국에서 사용되는 20,902개 문자가 포함되었다. 이어서 중국은 유니코드 1.1에 해당하는궈뱌오 표준인GB 13000.1-93을 발표했다.
GBK 문자 집합은 1993년에GB 2312-80의 확장으로 정의되었으며, GB 2312에서 사용되지 않는 코드 포인트를 통해 GB 13000.1-93의 문자도 포함했다. 따라서 GBK는 GB 2312와 하위 호환된다. GBK는 GB 13000.1-93의 규범적 부록으로 정의되었다.[6]
마이크로소프트는윈도우 95와윈도우 NT 3.51에서 GBK를코드 페이지 936으로 구현했다. GBK는 공식 표준은 아니었지만, 윈도우 95의 광범위한 사용으로 GBK는 사실상의 표준이 되었다. GBK는 유니코드 1.1과 GB 13000.1-93에 정의된 모든 한자를 포함했지만, 이 표준들은 다른 코드 테이블을 사용했다. 그 존재의 주된 이유는 단순히 GB 2312-80과 GB 13000.1-93 사이의 간극을 메우기 위함이었다.
1995년, 중국 국가 정보 기술 표준화 기술 위원회는 코드 페이지 936의 약간 확장된 버전인 중국 내부 코드 확장 사양(중국어간체자:汉字内码扩展规范 (GBK),병음:Hànzì Nèimǎ Kuòzhǎn Guīfàn (GBK)) 버전 1.0을 제정했는데, 이를GBK 1.0으로 알려져 있다. 새로 추가된 95개의 문자는 GB 13000.1-1993에는 없었으며, 잠정적으로 유니코드사설 사용 영역(PUA) 코드 포인트에 할당되었다.[7]:534
마이크로소프트는 나중에 코드 페이지 936에유로 기호를 추가하고 0x80 코드를 할당했다. 이것은 GBK 1.0에서는 유효한 코드 포인트가 아니다.
2000년에GB 18030-2000 표준이 발표되었으며, GBK 1.0을 대체하면서도 호환성을 유지했다. 이 표준은 한자의 정의 수를 늘리고 4바이트 문자 공간의 구현을 통해 가능한 문자 수를 확장했다. GB 18030의 1바이트 및 2바이트 문자로 구성된 하위 집합은 때때로GBK라고도 불린다. 그러나 일부 문자가 이제 유니코드에 정의되어 있으므로 유니코드와의 매핑은 약간 변경되었다. 최신 표준인 GB 18030-2005에서는 24개[8] 문자만이 여전히 유니코드 PUA에 매핑되어 있다(GB 18030#PUA 참조).
2002년,GBK는 IANA 문자 집합으로 등록되었다. 이 등록은 코드 페이지 936 매핑과 CP936/MS936 별칭을 사용하지만, GBK 1.0 사양을 참조한다.[1]2015년에 발표된W3C의 기술 권고[9]는GBK 인코더를 단일 바이트 유로 기호가 있고 4바이트 시퀀스가 없는 GB 18030 인코더로 정의한다(W3C의GBK 디코더 사양은 이러한 제한이 없으며,GB 18030, 즉유니코드 전체와 동일한 문자 범위를 디코딩한다).
문자는 1 또는 2바이트로 인코딩된다.00–7F 범위의 바이트는ASCII에서와 동일한 의미를 갖는 단일 바이트이다. 엄밀히 말하면, 이 범위에는 95개의 문자와 33개의제어 문자가 있다.
상위 비트가 설정된 바이트는 2바이트 중 첫 번째 바이트임을 나타낸다. 느슨하게 말하면, 첫 번째 바이트는81–FE 범위(즉,80 또는FF는 아님)에 있으며, 두 번째 바이트는 일부 영역의 경우7F를 제외한40–A0이고 다른 영역의 경우A1–FE이다.
더 구체적으로, 다음 바이트 범위가 정의된다.
| 범위 | 1바이트 | 2바이트 | 코드 포인트 | 문자 | |||
|---|---|---|---|---|---|---|---|
| GB 18030 | GBK 1.0 | 코드 페이지 936 | GB 2312 | ||||
| 레벨GBK/1 | A1–A9 | A1–FE | 846 | 718[7]:8–10 | 717 | 715 | 682 |
| 레벨GBK/2 | B0–F7 | A1–FE | 6,768 | 6,763 | 6,763 | 6,763 | |
| 레벨 GBK/3 | 81–A0 | 7F를 제외한40–FE | 6,080 | 6,080 | 6,080 | ||
| 레벨 GBK/4 | AA–FE | 7F를 제외한40–A0 | 8,160 | 8,160 | 8,080 | ||
| 레벨GBK/5 | A8–A9 | 7F를 제외한40–A0 | 192 | 166 | 153 | ||
| 사용자 정의 1[7] | AA–AF | A1–FE | 564 | ||||
| 사용자 정의 2 | F8–FE | A1–FE | 658 | ||||
| 사용자 정의 3 | A1–A7 | 7F를 제외한40–A0 | 672 | ||||
| 총계: | 23,940 | 21,887 | 21,886 | 21,791 | 7,445 | ||
그래픽 형태로, 다음 그림은 가능한 모든 64K 2바이트 코드의 공간을 보여준다. 녹색 및 노란색 영역은 GBK 코드 포인트에 할당되며, 빨간색은 사용자 정의 문자용이다. 색상이 없는 영역은 유효하지 않은 바이트 조합이다.
이전 섹션에서 GBK/1 및 GBK/2로 표시된 영역은 그 자체로 일반적인 인코딩인GB 2312-80이며, GBK/1은 한자 이외의 영역이고 GBK/2는 한자 영역이다. GB 2312, 또는 더 정확하게는 EUC-CN 인코딩은 GR에 로드된 모든 94² ISO-2022 문자 집합처럼A1–FE 범위에서 두 바이트를 취한다. 이는 위 그림의 오른쪽 아래 사분면에 해당한다. 그러나 GB 2312는AA–B0 및F8–FE에 위치한 행에 어떤 코드 포인트도 할당하지 않았지만, 그 영역을 확보해 두었다. GBK는 이 행에 확장을 추가했다. 두 개의 간극이 사용자 정의 영역으로 채워진 것을 볼 수 있다.
더 중요한 것은 GBK가 바이트 범위를 확장했다는 점이다. ISO-2022 GR 범위에 2바이트 문자가 있으면 94²=8,836가지 가능성으로 제한된다. 그래픽 및 제어 문자에 대한 엄격한 영역의 ISO-2022 모델을 포기하면서도 낮은 바이트가 1바이트 문자이고 높은 바이트 쌍이 문자를 나타내는 기능을 유지하면 잠재적으로 128²=16,384개의 위치를 가질 수 있다. GBK는 그 중 일부를 차지하여 첫 번째 바이트의 범위를A1–FE(각 바이트에 94가지 선택)에서81–FE(126가지 선택)로, 두 번째 바이트는40–FE(191가지 선택)로 확장하여 총 24,066개의 위치를 제공한다.
마이크로소프트의 코드 페이지 936은 일반적으로 GBK로 간주된다.[1] 그러나 GBK 1.0에 추가된95개의 PUA 문자는 코드 페이지 936에 포함되지 않는다. 코드 페이지 936에는 GBK 1.0에는 없는 0x80의 단일 바이트유로 기호도 있다.[10]
GBK의 후속인GB 18030-2000은 두 번째 바이트에 사용할 수 있는 나머지 범위(30–39)를 사용하여 GBK를 하위 집합으로 유지하면서 가능한 문자 수를 더욱 확장한다.
The Ideographic Description characters are found in GBK—an extension to GB 2312-80 that added all 20,902 Unicode Version 1.1 ideographs not already in GB 2312-80. GBK is defined as a normative annex of GB 13000.1-93.