GB 18030
GB 18030 인코딩 레이아웃. | |
| MIME / IANA | GB18030 |
|---|---|
| 다른 이름 | 코드 페이지 54936 |
| 언어 | 국제. (단, 중국어에 주로 사용) |
| 표준 | GB 18030-2022, GB 18030-2005, GB 18030-2000 |
| 분류 | 유니코드 변환 형식, 확장 ASCII,[a] 가변 너비 인코딩, CJK 인코딩 |
| 상위 인코딩 | EUC-CN, GBK |
| 변환 / 암호 | ISO 10646 (유니코드) |
| 이전 인코딩 | GBK, GB2312 |
| |
| 유니코드 |
|---|
| 부호화 형식 |
| UCS |
| 양방향 텍스트 |
| BOM |
| 한중일 통합 한자 |
| 유니코드 범위 목록 |
| 유니코드 등가성 |
| 유니코드와 HTML |
| 유니코드와 전자 우편 |
| 유니코드 글꼴 |
GB 18030은 중국 정부 표준으로, 정보 기술 – 중국어 코드 문자 집합으로 설명되며 중국 내 소프트웨어에 필요한 언어 및 문자 지원을 정의한다. GB18030은 GB2312를 대체하는 중화인민공화국(PRC)의 공식 문자 집합에 대한 등록된 인터넷 이름이다.[1] 유니코드 변환 형식[a] (즉, 모든 유니코드 코드 포인트의 인코딩)으로서, GB18030은 간체자와 정체자를 모두 지원한다. 또한 GB/T 2312, CP936,[b] 및 GBK 1.0을 포함한 레거시 인코딩과도 호환된다.
유니코드 컨소시엄은 이 중국 표준의 최신 버전인 GB 18030-2022가 이전 버전인 GB 18030-2005에서 "33개의 다른 문자와 55개의 코드 위치를 포함하는" "파괴적인 변경"을 도입했다고 구현자들에게 경고했다.[2] GB 18030-2022는 2023년 8월 1일부터 시행되었다.[3] 이는 ICU 73.2 및 자바 21에 구현되었고,[4] 이전 자바 8, 11, 17 (LTS 릴리스) 및 20.0.2로 백포트되었다.[5]
인코딩 방식 외에도 이 표준은 어떤 추가 스크립트와 언어가 표현되어야 하는지, 그리고 이 표준이 누구에게 적용되는지에 대한 요구 사항을 포함한다.[6] 그러나 이 표준은 중국어 한자에 대한 공식 문자 형태를 정의하지 않는다. 이는 통용규범한자표에 표준화되어 있다.
역사
[편집]GB18030 문자 집합은 공식적으로 "중국 국가 표준 GB 18030-2005: 정보 기술—중국어 코드화 문자 집합"이라고 불린다. GB는 Guójiā Biāozhǔn (国家标准)의 약어로, 중국어로 국가 표준을 의미한다. 이 표준은 2005년 11월 8일 베이징의 중국 표준 출판사에서 발행되었다. 표준의 일부만 의무 사항이다.[6] 2006년 5월 1일부터 PRC에서 판매되는 모든 소프트웨어 제품에 대해 의무 하위 집합 지원이 공식적으로 요구된다.
| GB 바이트 시퀀스 | 유니코드 코드 포인트 | |
|---|---|---|
| GB 18030-2000 | GB 18030-2005 | |
| A8 BC (ḿ) | U+E7C7 | U+1E3F ḿ LATIN SMALL LETTER M WITH ACUTE |
| 81 35 F4 37 | U+1E3F ḿ LATIN SMALL LETTER M WITH ACUTE | U+E7C7 |
"중국 국가 표준 GB 18030-2000: 정보 기술—정보 교환을 위한 중국어 이데오그램 코드화 문자 집합—기본 세트 확장"으로 알려진 이 표준의 이전 버전은 2000년 3월 17일에 발행되었다. 인코딩 방식은 새 버전에서도 동일하며, GB-유니코드 매핑의 유일한 차이점은 GB 18030-2000이 문자 A8 BC (ḿ)를 개인 사용 코드 포인트 U+E7C7에 매핑하고, 문자 81 35 F4 37 (글리프 지정 없이)를 U+1E3F (ḿ)에 매핑한 반면, GB 18030-2005는 이 두 매핑 할당을 교환한다는 것이다.[7]: 534 한중일 통합 한자 확장 B의 출현과 같이 유니코드의 업데이트로 인해 더 많은 코드 포인트가 문자와 연결되었다. 중국의 소수민족이 사용하는 일부 문자, 예를 들어 몽골 문자 및 티베트 문자 (GB 16959-1997 및 GB/T 20542-2006)도 추가되었으며, 이는 표준 이름 변경의 이유가 되었다.
선행 표준들과 비교하여, GB 18030의 유니코드 매핑은 GBK 1.0에서 임시로 유니코드 Private Use Area 코드 포인트 (U+E000–F8FF)로 할당되었고 나중에 유니코드에 인코딩된 81개 문자에 대해 수정되었다.[8] 이는 GB 18030의 부록 E에 명시되어 있다.[7]: 534 [9]: 499 GB 18030-2005에는 여전히 유니코드 PUA에 매핑되는 24개의 문자가 있다.[10]
GB 18030-2022 업데이트에서는 PUA에 매핑되어야 하는 문자 요구 사항이 완전히 해제되었으며 모든 문자는 표준 유니코드 코드 포인트에 매핑되어야 한다. 이 중 18개의 매핑은 GBK와 GB 18030 사이에서 발생한 것과 유사하게 위치 교환을 통해 업데이트되었다. 나머지 6개는 두 바이트 PUA 매핑을 유지했으므로 비 PUA 선호도를 따르기 위해 4바이트 시퀀스 변경이 필요하다.[11]
| GB 바이트 시퀀스 | 유니코드 코드 포인트 [a] | |||
|---|---|---|---|---|
| GBK 1.0[12][7]: 534 | GB 18030-2005[10] | 유니코드 4.1 | GB 18030-2022[11] | |
| A6 D9[13]: 108 | U+E78D |
U+FE10 ︐ PRESENTATION FORM FOR VERTICAL COMMA | ||
| A6 DA | U+E78E | U+FE12 ︒ PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP | ||
| A6 DB | U+E78F | U+FE11 ︑ PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA | ||
| A6 DC | U+E790 | U+FE13 ︓ PRESENTATION FORM FOR VERTICAL COLON | ||
| A6 DD | U+E791 | U+FE14 ︔ PRESENTATION FORM FOR VERTICAL SEMICOLON | ||
| A6 DE | U+E792 | U+FE15 ︕ PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK | ||
| A6 DF | U+E793 | U+FE16 ︖ PRESENTATION FORM FOR VERTICAL QUESTION MARK | ||
| A6 EC | U+E794 | U+FE17 ︗ PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET | ||
| A6 ED | U+E795 | U+FE18 ︘ PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET | ||
| A6 F3 | U+E796 | U+FE19 ︙ PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS | ||
| A8 BC | U+E7C7 | U+1E3F ḿ LATIN SMALL LETTER M WITH ACUTE | ||
| A8 BF | U+E7C8 | U+01F9 ǹ LATIN SMALL LETTER N WITH GRAVE | ||
| A9 89 | U+E7E7 | U+303E 〾 IDEOGRAPHIC VARIATION INDICATOR | ||
| A9 8A | U+E7E8 | U+2FF0 ⿰ IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT | ||
| A9 8B | U+E7E9 | U+2FF1 ⿱ IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW | ||
| A9 8C | U+E7EA | U+2FF2 ⿲ IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT | ||
| A9 8D | U+E7EB | U+2FF3 ⿳ IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW | ||
| A9 8E | U+E7EC | U+2FF4 ⿴ IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND | ||
| A9 8F | U+E7ED | U+2FF5 ⿵ IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE | ||
| A9 90 | U+E7EE | U+2FF6 ⿶ IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW | ||
| A9 91 | U+E7EF | U+2FF7 ⿷ IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT | ||
| A9 92 | U+E7F0 | U+2FF8 ⿸ IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT | ||
| A9 93 | U+E7F1 | U+2FF9 ⿹ IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT | ||
| A9 94[13]: 173 | U+E7F2 | U+2FFA ⿺ IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT | ||
| A9 95 | U+E7F3 | U+2FFB ⿻ IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID | ||
| FE 50 | U+E815 | U+2E81 ⺁ CJK RADICAL CLIFF | ||
| FE 51 | U+E816 | U+20087 𠂇 CJK UNIFIED IDEOGRAPH-20087[b] | U+E816 | |
| FE 52 | U+E817 | U+20089 𠂉 CJK UNIFIED IDEOGRAPH-20089[c] | U+E817 | |
| FE 53 | U+E818 | U+200CC 𠃌 CJK UNIFIED IDEOGRAPH-200CC[d] | U+E818 | |
| FE 54 | U+E819 | U+2E84 ⺄ CJK RADICAL SECOND THREE | ||
| FE 55 | U+E81A | U+3473 㑳 CJK UNIFIED IDEOGRAPH-3473 | ||
| FE 56 | U+E81B | U+3447 㑇 CJK UNIFIED IDEOGRAPH-3447 | ||
| FE 57 | U+E81C | U+2E88 ⺈ CJK RADICAL KNIFE ONE | ||
| FE 58 | U+E81D | U+2E8B ⺋ CJK RADICAL SEAL | ||
| FE 59 | U+E81E | U+9FB4 龴 CJK UNIFIED IDEOGRAPH-9FB4 | ||
| FE 5A | U+E81F | U+359E 㖞 CJK UNIFIED IDEOGRAPH-359E | ||
| FE 5B | U+E820 | U+361A 㘚 CJK UNIFIED IDEOGRAPH-361A | ||
| FE 5C | U+E821 | U+360E 㘎 CJK UNIFIED IDEOGRAPH-360E | ||
| FE 5D | U+E822 | U+2E8C ⺌ CJK RADICAL SMALL ONE | ||
| FE 5E | U+E823 | U+2E97 ⺗ CJK RADICAL HEART TWO | ||
| FE 5F | U+E824 | U+396E 㥮 CJK UNIFIED IDEOGRAPH-396E | ||
| FE 60 | U+E825 | U+3918 㤘 CJK UNIFIED IDEOGRAPH-3918 | ||
| FE 61 | U+E826 | U+9FB5 龵 CJK UNIFIED IDEOGRAPH-9FB5 | ||
| FE 62 | U+E827 | U+39CF 㧏 CJK UNIFIED IDEOGRAPH-39CF | ||
| FE 63 | U+E828 | U+39DF 㧟 CJK UNIFIED IDEOGRAPH-39DF | ||
| FE 64 | U+E829 | U+3A73 㩳 CJK UNIFIED IDEOGRAPH-3A73 | ||
| FE 65 | U+E82A | U+39D0 㧐 CJK UNIFIED IDEOGRAPH-39D0 | ||
| FE 66 | U+E82B | U+9FB6 龶 CJK UNIFIED IDEOGRAPH-9FB6 | ||
| FE 67 | U+E82C | U+9FB7 龷 CJK UNIFIED IDEOGRAPH-9FB7 | ||
| FE 68 | U+E82D | U+3B4E 㭎 CJK UNIFIED IDEOGRAPH-3B4E | ||
| FE 69 | U+E82E | U+3C6E 㱮 CJK UNIFIED IDEOGRAPH-3C6E | ||
| FE 6A | U+E82F | U+3CE0 㳠 CJK UNIFIED IDEOGRAPH-3CE0 | ||
| FE 6B | U+E830 | U+2EA7 ⺧ CJK RADICAL COW | ||
| FE 6C | U+E831 | U+215D7 𡗗 CJK UNIFIED IDEOGRAPH-215D7[e] | U+E831 | |
| FE 6D | U+E832 | U+9FB8 龸 CJK UNIFIED IDEOGRAPH-9FB8 | ||
| FE 6E | U+E833 | U+2EAA ⺪ CJK RADICAL BOLT OF CLOTH | ||
| FE 6F | U+E834 | U+4056 䁖 CJK UNIFIED IDEOGRAPH-4056 | ||
| FE 70 | U+E835 | U+415F 䅟 CJK UNIFIED IDEOGRAPH-415F | ||
| FE 71 | U+E836 | U+2EAE ⺮ CJK RADICAL BAMBOO | ||
| FE 72 | U+E837 | U+4337 䌷 CJK UNIFIED IDEOGRAPH-4337 | ||
| FE 73 | U+E838 | U+2EB3 ⺳ CJK RADICAL NET THREE | ||
| FE 74 | U+E839 | U+2EB6 ⺶ CJK RADICAL SHEEP | ||
| FE 75 | U+E83A | U+2EB7 ⺷ CJK RADICAL RAM | ||
| FE 76 | U+E83B | U+2298F 𢦏 CJK UNIFIED IDEOGRAPH-2298F[f] | U+E83B | |
| FE 77 | U+E83C | U+43B1 䎱 CJK UNIFIED IDEOGRAPH-43B1 | ||
| FE 78 | U+E83D | U+43AC 䎬 CJK UNIFIED IDEOGRAPH-43AC | ||
| FE 79 | U+E83E | U+2EBB ⺻ CJK RADICAL BRUSH TWO | ||
| FE 7A | U+E83F | U+43DD 䏝 CJK UNIFIED IDEOGRAPH-43DD | ||
| FE 7B | U+E840 | U+44D6 䓖 CJK UNIFIED IDEOGRAPH-44D6 | ||
| FE 7C | U+E841 | U+4661 䙡 CJK UNIFIED IDEOGRAPH-4661 | ||
| FE 7D | U+E842 | U+464C 䙌 CJK UNIFIED IDEOGRAPH-464C | ||
| FE 7E | U+E843 | U+9FB9 龹 CJK UNIFIED IDEOGRAPH-9FB9 | ||
| FE 80 | U+E844 | U+4723 䜣 CJK UNIFIED IDEOGRAPH-4723 | ||
| FE 81 | U+E845 | U+4729 䜩 CJK UNIFIED IDEOGRAPH-4729 | ||
| FE 82 | U+E846 | U+477C 䝼 CJK UNIFIED IDEOGRAPH-477C | ||
| FE 83 | U+E847 | U+478D 䞍 CJK UNIFIED IDEOGRAPH-478D | ||
| FE 84 | U+E848 | U+2ECA ⻊ CJK RADICAL FOOT | ||
| FE 85 | U+E849 | U+4947 䥇 CJK UNIFIED IDEOGRAPH-4947 | ||
| FE 86 | U+E84A | U+497A 䥺 CJK UNIFIED IDEOGRAPH-497A | ||
| FE 87 | U+E84B | U+497D 䥽 CJK UNIFIED IDEOGRAPH-497D | ||
| FE 88 | U+E84C | U+4982 䦂 CJK UNIFIED IDEOGRAPH-4982 | ||
| FE 89 | U+E84D | U+4983 䦃 CJK UNIFIED IDEOGRAPH-4983 | ||
| FE 8A | U+E84E | U+4985 䦅 CJK UNIFIED IDEOGRAPH-4985 | ||
| FE 8B | U+E84F | U+4986 䦆 CJK UNIFIED IDEOGRAPH-4986 | ||
| FE 8C | U+E850 | U+499F 䦟 CJK UNIFIED IDEOGRAPH-499F | ||
| FE 8D | U+E851 | U+499B 䦛 CJK UNIFIED IDEOGRAPH-499B | ||
| FE 8E | U+E852 | U+49B7 䦷 CJK UNIFIED IDEOGRAPH-49B7 | ||
| FE 8F | U+E853 | U+49B6 䦶 CJK UNIFIED IDEOGRAPH-49B6 | ||
| FE 90 | U+E854 | U+9FBA 龺 CJK UNIFIED IDEOGRAPH-9FBA | ||
| FE 91 | U+E855 | U+241FE 𤇾 CJK UNIFIED IDEOGRAPH-241FE[g] | U+E855 | |
| FE 92 | U+E856 | U+4CA3 䲣 CJK UNIFIED IDEOGRAPH-4CA3 | ||
| FE 93 | U+E857 | U+4C9F 䲟 CJK UNIFIED IDEOGRAPH-4C9F | ||
| FE 94 | U+E858 | U+4CA0 䲠 CJK UNIFIED IDEOGRAPH-4CA0 | ||
| FE 95 | U+E859 | U+4CA1 䲡 CJK UNIFIED IDEOGRAPH-4CA1 | ||
| FE 96 | U+E85A | U+4C77 䱷 CJK UNIFIED IDEOGRAPH-4C77 | ||
| FE 97 | U+E85B | U+4CA2 䲢 CJK UNIFIED IDEOGRAPH-4CA2 | ||
| FE 98 | U+E85C | U+4D13 䴓 CJK UNIFIED IDEOGRAPH-4D13 | ||
| FE 99 | U+E85D | U+4D14 䴔 CJK UNIFIED IDEOGRAPH-4D14 | ||
| FE 9A | U+E85E | U+4D15 䴕 CJK UNIFIED IDEOGRAPH-4D15 | ||
| FE 9B | U+E85F | U+4D16 䴖 CJK UNIFIED IDEOGRAPH-4D16 | ||
| FE 9C | U+E860 | U+4D17 䴗 CJK UNIFIED IDEOGRAPH-4D17 | ||
| FE 9D | U+E861 | U+4D18 䴘 CJK UNIFIED IDEOGRAPH-4D18 | ||
| FE 9E | U+E862 | U+4D19 䴙 CJK UNIFIED IDEOGRAPH-4D19 | ||
| FE 9F | U+E863 | U+4DAE 䶮 CJK UNIFIED IDEOGRAPH-4DAE | ||
| FE A0 | U+E864 | U+9FBB 龻 CJK UNIFIED IDEOGRAPH-9FBB | ||
참고
| ||||
국가 표준으로서
[편집]GB 18030의 첫 번째 버전인 GB 18030-2000 정보 기술 - 정보 교환용 중국어 코드 문자 집합 - 기본 집합 확장은 1바이트 및 2바이트 인코딩과 함께 한중일 통합 한자 확장 A(유니코드 3.0에 있는 문자들과 일치)에 대한 4바이트 인코딩으로 구성된다. 잠정적인 개인 할당을 포함한 이 부분집합의 해당 유니코드 코드 포인트는 전적으로 BMP에 있다. 이 부분들은 GB 18030-2000에서 완전히 필수적이다.[6]: 2 대부분의 주요 컴퓨터 회사들은 이미 유니코드의 특정 버전을 바이너리 형식 및 OS 호출에 사용되는 기본 형식으로 표준화했다. 그러나 그들은 주로 유니코드 1.0에서 원래 정의된 BMP의 코드 포인트만 지원했으며, 이는 65,536개의 코드 포인트만 지원하고 종종 UCS-2로 16비트로 인코딩되었다. 이 표준은 기본적으로 GBK를 기반으로 하는 확장으로, 한중일 통합 한자 확장 A에 추가 문자가 포함되어 있다.
GB 18030-2005 정보 기술 - 중국어 코드 문자 집합으로 지정된 두 번째 버전은 GB 18030-2000의 1바이트, 2바이트 및 4바이트 인코딩과 동일한 필수 부분집합을 가지고 있다.[7]: 3 이 버전은 또한 BMP 외부에 있는 전체 한중일 통합 한자 확장 B를 4바이트 인코딩 섹션에 포함하며[10] 권장 지원 요구사항이다.[14] 그러나 4바이트 영역에 한중일 통합 한자 확장 B를 포함하는 것이 정보 처리 동안 유지되어야 하므로 소프트웨어는 더 이상 문자를 16비트 고정 너비 엔티티(UCS-2)로 취급할 수 없다. 따라서 그들은 데이터를 가변 너비 형식(UTF-8 또는 UTF-16과 같이 가장 일반적인 선택)으로 처리하거나 더 큰 고정 너비 형식(즉, UTF-32)으로 이동해야 한다. 마이크로소프트는 윈도우 2000에서 UCS-2에서 UTF-16으로 변경했다. 이 버전은 유니코드 3.1과 일치하며, 한글(한국어), 몽골어(만주 문자, 클리어 스크립트, 시베 허르겐, 갈리크 포함), 따이느아어, 티베트 문자, 위구르어/카자흐어/키르기스어 및 이 문자에 대한 지원도 제공했다.
세 번째이자 최신 버전인 GB 18030-2022 정보 기술 - 중국어 코드 문자 집합은 GB 18030-2005에서 권장 사항으로 지원되던 한중일 통합 한자 확장 B를 의무화하며, 강희자전 부수 및 한중일 통합 한자 URO, 확장 C, D, E, F를 포함한 유니코드 11.0까지의 업데이트를 포함한다. 아랍계 문자의 일부, 따이르, 신따이르, 따이땀, 리수어, 먀오와 같은 추가 언어도 GB 18030-2022에서 인식된다. GB 18030-2022는 또한 세 가지 구현 수준을 도입하며, "이 표준을 사용하는 모든 제품은 구현 수준 1을 구현해야 한다"는 요구사항에는 유니코드 3.1과 유니코드 11.0 사이에 추가된 4바이트 인코딩 영역의 66개의 새로운 BMP 문자가 포함된다. 구현 수준 2는 통용규범한자표의 지원을 요구하며, 구현 수준 3은 표준의 다른 모든 지정된 영역을 요구한다.[11]
2022년 말부터 2023년까지 GB 18030-2022에 대한 추가 개정안 초안이 대중에게 공개될 예정이다. 현재 초안은 한자 모양 설명 문자, 한중일 통합 한자 URO, 확장 A, B, C, G, H, I에 대한 유니코드 15.1까지의 업데이트를 포함한다.[15][16][17] 원래 2022년 말에 10번째 평면(아직 이름이 없는 유니코드 부가 평면)에 897개의 새로운 한자 문자를 배치하여 중국의 시민 실명 인증을 위해 사용될 예정이었으나, 결국 전문가 검토 후 622개 문자로 축소된 레퍼토리는 2023년 9월에 한중일 통합 한자 확장 I 블록으로 유니코드 15.1에 신속하게 포함되었다.[18] 이에 따라 개정안 초안은 확장 I 코드 포인트를 사용하도록 수정되었다.[17]
매핑
[편집]GB 18030은 1바이트(ASCII), 2바이트(확장 GBK), 또는 4바이트(UTF) 인코딩을 정의한다. 2바이트 코드는 조회표에 정의되어 있으며, 4바이트 코드는 UCS에서 인코딩되지 않은 부분을 채우기 위해 순차적으로(따라서 알고리즘적으로) 정의된다. GB 18030은 GBK의 단점을 물려받았는데, 가장 눈에 띄는 것은 GB18030 시퀀스에서 ASCII 문자를 안전하게 찾기 위해 특별한 코드가 필요하다는 점이다.
| GB 18030 | 코드 포인트[c] | 유니코드 | |||
|---|---|---|---|---|---|
| 바이트 1 (최상위 바이트) | 바이트 2 | 바이트 3 | 바이트 4 | ||
00 – 7F |
128 | 0000 – 007F | |||
80 |
— | 무효[d] | |||
81 – FE | 40 – FE (7F 제외)[e] |
23940 | 0080 – FFFF (D800 – DFFF 제외)[f] | ||
81 – 84 |
30 – 39 |
81 – FE |
30 – 39 |
39420 | |
85 |
— (12600) | 향후 문자 확장용으로 예약됨 | |||
86 – 8F |
— (126000) | 향후 한자 확장용으로 예약됨 | |||
| 할당되지 않음 | — | D800 – DFFF[g] | |||
90 – E3 |
30 – 39 |
81 – FE |
30 – 39 |
1048576 | 10000 – 10FFFF |
E4 – FC |
— (315000) | 향후 표준 확장용으로 예약됨 | |||
FD – FE |
— (25200) | 사용자 정의 | |||
FF |
— | 무효 | |||
| 합계 | 1112064 | ||||
1바이트 및 2바이트 코드 포인트는 본질적으로 GBK에 유로 기호, 할당되지 않거나 사용자 정의된 포인트에 대한 PUA 매핑, 그리고 수직 구두점이 추가된 것이다. 4바이트 스킴은 각각 2바이트로 구성된 두 개의 단위로 생각할 수 있다. 각 단위는 GBK 2바이트 문자와 유사한 형식을 가지지만 두 번째 바이트의 값 범위가 0x30–0x39(십진수 숫자에 대한 ASCII 코드)이다. 첫 번째 바이트는 이전과 마찬가지로 0x81부터 0xFE까지의 범위를 가진다. 이는 GBK에 안전한 문자열 검색 루틴이 GB18030에도 합리적으로 안전해야 한다는 것을 의미한다(기본적인 바이트 지향 검색 루틴이 EUC에 합리적으로 안전한 것과 유사하게).
이는 총 1,587,600(126×10×126×10)개의 가능한 4바이트 시퀀스를 제공하며, 이는 유니코드의 1,112,064(17×65536 − 2048 대리쌍)개의 할당, 예약, 비문자 코드 포인트를 커버하기에 충분하다.
불행히도, 문제를 더욱 복잡하게 만드는 것은 4바이트 시퀀스와 해당 코드 포인트 간의 번역에 대한 간단한 규칙이 없다는 것이다. 대신, 코드는 다른 방식으로 매핑되지 않은 유니코드 코드 포인트에 만 순차적으로 할당된다(첫 번째 바이트가 가장 중요한 부분을, 마지막 바이트가 가장 덜 중요한 부분을 포함한다).[h] 예를 들어:
U+00DE (Þ) → 81 30 89 37 U+00DF (ß) → 81 30 89 38 U+00E0 (à) → A8 A4 U+00E1 (á) → A8 A2 U+00E2 (â) → 81 30 89 39 U+00E3 (ã) → 81 30 8A 30
WHATWG 및 W3C 버전의 GB 18030에서는 코드 포인트를 효율적으로 변환하기 위해 오프셋 테이블이 사용된다.[20] ICU[19]와 glibc는 큰 순차 블록에서 공간 낭비를 피하기 위해 유사한 범위 정의를 사용한다.
지원
[편집]
인코딩
[편집]GB 18030은 윈도우 95 출시 이후 코드 페이지 54936으로 윈도우에서 지원되었다.[21] 윈도우 2000 및 XP는 GB18030 지원 패키지를 제공한다.[22] 오픈 소스 PostgreSQL 데이터베이스는 UTF-8에 대한 완전한 지원을 통해 즉, UTF-8로의 변환 및 변환을 통해 GB18030을 지원한다. 마찬가지로 마이크로소프트 SQL 서버는 UTF-16으로의 변환 및 변환을 통해 GB18030을 지원한다.
보다 구체적으로, 윈도우에서 GB18030 인코딩을 지원한다는 것은 코드 페이지 54936이 MultiByteToWideChar 및 WideCharToMultiByte에 의해 지원된다는 의미이다. 매핑의 하위 호환성으로 인해, 코드 페이지 54936이 지원되지 않더라도 많은 GB18030 파일은 레거시 코드 페이지 936, 즉 GBK로 실제로 성공적으로 열 수 있다. 그러나 이것은 해당 파일에 GBK 문자만 포함된 경우에만 해당된다. 파일에 GBK에 없는 문자가 포함된 경우 로딩이 실패하거나 손상된 결과가 발생한다(예시는 § Mapping 참조).
대부분의 리눅스 배포판에서 사용되는 문자 코덱 라이브러리인 GNU Glibc의 gconv는 2.2부터 GB 18030-2000을 지원하며,[23] 2.14부터는 GB 18030-2005를 지원한다.[24] 특히 glibc는 왕복 변환을 달성하기 위해 GB 18030-2005에 대한 비-PUA 매핑을 포함한다.[25] 시그윈과 같은 비-glibc 유닉스 유사 환경에서 자주 사용되는 대체 Iconv 구현인 GNU libiconv는 버전 1.4부터 GB 18030을 지원한다.[26]
2022년 현재 "비중국어 스크립트 지원은 계속 선택 사항이다"[27] (아마도 디스플레이/글꼴 지원만 해당; 중국에서는 인코딩이 완전한 UTF이므로). 이 표준은 영어/ASCII를 지원하며 "GB 18030-2022에서 인식되는 다음 비중국어 스크립트는 아랍어, 티베트어, 몽골어, 따이르어, 신따이르어, 따이땀어, 이, 리수어, 한글(한국어), 먀오어이다."[27]
글꼴
[편집]윈도우용 GB18030 지원 패키지에는 두 개의 중국어 글꼴인 SimSun-18030과 NSimSun-18030을 결합한 TrueType 글꼴 컬렉션 파일인 SimSun18030.ttc가 포함되어 있다. SimSun 18030 글꼴은 유니코드 2.1의 모든 문자와 유니코드 CJK 통합 한자 확장 A 블록에서 발견되는 새로운 문자를 포함하지만, 이름과는 달리 GB 18030으로 인코딩할 수 있는 모든 유니코드 코드 포인트(약 100만 개)에 대한 글리프를 포함하지 않는다. GB 18030 준수 인증은 필수(2바이트 및 CJK 확장 A) 중국어 부분의 글리프에 대한 정확한 처리 및 인식만을 요구한다.[6]: 4 그럼에도 불구하고, 표준에서 PUA 문자의 요구사항은 이 구현을 방해했다.[28]
마이크로소프트에서 제공하는 Microsoft YaHei 및 DengXian은 2023년에 GB 18030-2022 구현 수준 2에 맞게 업데이트되었으며, SimSun은 구현 수준 3에 맞게 업데이트되었다.[29]
본고딕(및 그 대응 글꼴인 Noto Sans CJK)은 2022년 11월 기준으로 GB 18030 업데이트가 발표되었을 때 이미 GB 18030-2022 구현 수준 2를 준수한다. 그러나 본명조(및 그 대응 글꼴인 Noto Serif CJK)는 당시에는 준수하지 않아, 글꼴이 구현 수준 2를 준수하도록 업데이트가 제공되었다. 마찬가지로 Microsoft YaHei 및 PingFang (Apple)은 GB 18030-2022 구현 수준 2를 준수하기 위해 구현 수준 1과 관련된 소수의 URO 추가가 필요하다.[27]
HAN NOM[30] 및 Hanazono Mincho[31]와 같은 다른 CJK 글꼴군은 SimSun-18030 또는 SimSun (Founder Extended)보다 유니코드 CJK 확장 블록에 대한 더 넓은 범위를 제공하지만, GB 18030에 정의된 모든 코드 포인트를 지원하지는 않는다.
같이 보기
[편집]내용주
[편집]- ↑ Note that GB18030 omits surrogates; see § Mapping.
- ↑ The euro sign is an exception which is given a single byte code of 0x80 in Microsoft's later versions of CP936/GBK and a two byte code of A2 E3 in GB18030.
- ↑ 코드 포인트에는 66개의 유니코드 비문자가 포함된다.
- ↑ ICU는 이 코드 포인트를 잘못 유효하다고 간주하는 것으로 보이며, 이는 게시된 표준의 어느 버전에도 없다. WHATWG는 이 바이트를 유니버설 gb2312-gbk-gb18030 디코더에서 U+20AC (GBK 유로 기호)에 할당한다.
- ↑ 이 범위의 더 세분화된 구분은 GBK (문자 인코딩) § 인코딩을 참조하라.
- ↑ 일부 코드 포인트는 2바이트(위쪽 행)로, 다른 코드 포인트는 4바이트(아래쪽 행)로 인코딩된다. U+FFFF는 2005년 표준의 239페이지에서
84 31 A4 39로 인코딩되어 있지만, 표준은 BMP 매핑에 대해84 39 FE 39까지 제공한다. - ↑ 이들은 대리 코드 포인트이다. 이들은 UTF-16 인코딩 외부에서는 의미가 없다.
- ↑ 또한, U+E7C7과 U+1E3F의 인코딩이 서로 바뀌었기 때문에, U+E7C7은 표준의 2005년 판에서 U+1E3E (81 35 F4 36)와 U+1E40 (81 35 F4 38) 사이에 81 35 F4 37로 인코딩된다. 따라서 4바이트 코드를 다른 방식으로 매핑되지 않은 코드 포인트에 할당하는 데 있어서는 2000년 판만 완전히 순차적이다.
각주
[편집]- ↑ Anthony Fok (2002년 3월 15일). “Application of IANA Charset Registration for GB18030”. IANA Character Set Registrations. 2016년 12월 5일에 확인함.
- ↑ “Disruptive Changes in GB 18030-2022” (PDF). 《www.unicode.org》. 2024년 2월 12일에 확인함.
- ↑ “[JDK-8301119] Support for GB18030-2022 - Java Bug System”. 《bugs.openjdk.org》. 2023년 8월 14일에 확인함.
- ↑ “JDK 21 Release Notes”. 《jdk.java.net》. 2023년 8월 14일에 원본 문서에서 보존된 문서. 2023년 8월 14일에 확인함.
- ↑ “[JDK-8307340] Release Note: Support for GB18030-2022 - Java Bug System”. 《bugs.openjdk.org》. 2023년 8월 30일에 확인함.
- 1 2 3 4 CESI (2009년 7월 8일). “GB18030 符合性问与答” [GB18030 compliance FAQ]. 《CESI Certification Center》. 2016년 9월 28일에 원본 문서에서 보존된 문서. 2016년 10월 12일에 확인함.
Page 4 同时达到以下两个要求的产品,为符合GB 18030-2005强制部分的产品:①产品可以正确输入、输出、处理GB 18030-2005强制部分规定的全部汉字字符;②产品可以正确识别GB 18030-2005强制性部分规定的全部汉字字符对应的编码。 [A product compliant with the mandatory part of GB 18030 must be able to correctly a) input, output and process all Chinese characters defined in the mandatory set; b) recognize encodings for characters in the mandatory set.]
Alt URL - 1 2 3 4 5 Standardization Administration of China (SAC) (2005년 11월 18일). 《GB 18030-2005: Information Technology—Chinese coded character set》.
- ↑ “Unicode FAQ on GB 18030”. 《ICU Project》. 2018년 3월 2일에 원본 문서에서 보존된 문서. 2016년 9월 10일에 확인함.
- 1 2 《GB 18030-2000: Information Technology—Chinese ideograms coded character set for information interchange—Extension for the basic set》. 《Standardization Administration of China (SAC)》. 2000년 3월 17일.
- 1 2 3 Lunde, Ken (2006). “L2/06-394 Update on GB 18030:2005”. Unicode Technical Committee Document Registry. 2016년 9월 28일에 확인함.
- 1 2 3 Lunde, Ken (2022년 8월 4일). “The GB 18030-2022 Standard” (영어). 《Medium》. 2022년 8월 7일에 확인함.
- ↑ “Group:GBK外字”. 《GlyphWiki》. 2016년 9월 11일에 확인함.
- 1 2 Lunde, Ken (December 2008). 《CJKV Information Processing》. O'Reilly Media, Inc. ISBN 978-0-596-51447-1. 2016년 9월 11일에 확인함.
- ↑ CESI (2009년 7월 8일). “GB18030 符合性问与答” [GB18030 compliance FAQ]. 《CESI Certification Center》. 2016년 9월 28일에 원본 문서에서 보존된 문서. 2016년 10월 12일에 확인함.
Page 4 同时达到以下两个要求的产品,为符合GB 18030-2005强制部分的产品:①产品可以正确输入、输出、处理GB 18030-2005强制部分规定的全部汉字字符;②产品可以正确识别GB 18030-2005强制性部分规定的全部汉字字符对应的编码。 [A product compliant with the mandatory part of GB 18030 must be able to correctly a) input, output and process all Chinese characters defined in the mandatory set; b) recognize encodings for characters in the mandatory set.]
- ↑ Lunde, Dr Ken (2023년 11월 12일). “The First Amendment” (영어). 《Medium》. 2024년 9월 9일에 확인함.
- ↑ China National Body (2023년 4월 26일). “GB 18030—2022《信息技术 中文编码字符集》国家标准第1号修改单(征求意见稿)” (PDF). UTC L2/23-113.
- 1 2 China National Body (2023년 10월 13일). “IRG #61 Activity Report” (PDF). ISO/IEC JTC1/SC2/WG2/IRG N2623; UTC L2/23-240.
- ↑ United States National Body (2023년 5월 1일). “USNB Comments on Draft 2 of GB 18030-2022 Amendment 1 and recommendation for ISO/IEC 10646:2020 Amendment 2” (PDF). ISO/IEC JTC1/SC2 N4852, WG2 N5222; UTC L2/23-115.
- 1 2 GB18030-2000과 유니코드 간의 공인 매핑 테이블. ICU – International Components for Unicode. 2001-02-21. Accessed 2016-09-04.
- ↑ “Encoding Standard # gb18030-index”. 《WHATWG》. 2016년 9월 24일에 확인함.
- ↑ Bridge, Karl (2021년 10월 13일). “MultiByteToWideChar function (stringapiset.h) - Win32 apps” (미국 영어). 《learn.microsoft.com》. 2022년 11월 1일에 확인함.
- ↑ Microsoft. “GB18030 Support Package”. 《마이크로소프트》. 2012년 6월 5일에 원본 문서에서 보존된 문서.
- ↑ Drepper, Ulrich. “GB18030 iconv module for glibc.”. 《glibc git》. 2016년 11월 29일에 확인함.
- ↑ Drepper, Ulrich. “Update GB18030 to 2005 version”. 《glibc git》. 2016년 11월 29일에 확인함.
- ↑ Weimer, Florian; O'Donell, Carlos. “Status of GB18030 tables (#19575)”. 《Sourceware Bugzilla》. 2016년 11월 29일에 확인함.
- ↑ “NEWS - libiconv.git - libiconv”. 《git.savannah.gnu.org》. 2016년 10월 13일에 확인함.
- 1 2 3 Lunde, Ken (2022년 8월 16일). “The GB 18030-2022 Standard” (영어). 《Medium》. 2022년 11월 1일에 확인함.
- ↑ Lunde, Ken. “If gb18030 is revised, consider aligning the Encoding Standard · Issue #27 · whatwg/encoding” (영어). 《GitHub》.
Besides, supporting PUA code points in the context of the Noto CJK and Source Han fonts is a total non-starter, mainly because they are Pan-CJK typefaces, and PUA usage is extremely dangerous in such contexts.[...] One of my friends at CESI shared with me the text from the final draft a few days ago. This confirmed that the PUA requirement for the 24 characters is being lifted.
- ↑ “July 11, 2023—KB5028171 (OS Build 20348.1850) - Microsoft Support”. 《support.microsoft.com》. Microsoft. 2024년 3월 25일에 확인함.
- ↑ VietUnicode. “/hannom”. 《sourceforge.net》. 2016년 10월 13일에 확인함.
- ↑ “Hanazono fonts”. 《fonts.jp》. 2010년 4월 12일에 원본 문서에서 보존된 문서. 2016년 10월 13일에 확인함.
외부 링크
[편집]- IANA 문자 집합 GB18030 등록
- “GB 18030-2000 요약 (영어)” (PDF). 2001년 2월 16일. 2017년 2월 2일에 원본 문서 (PDF)에서 보존된 문서.
- GB2312와 GBK로부터의 진화를 포함한 GB18030 소개 (Sun/인터넷 아카이브)
- ICU 데이터
- GB18030: 메가 코드 페이지 (IBM DeveloperWorks)
- GB18030-2000과 유니코드 간의 공인 매핑 테이블
- ICU 변환기 탐색기: GB18030
- 유니코드 차트
- 유니코드 한중일 통합 한자 확장 A (PDF, 1.5 MB)
- 유니코드 한중일 통합 한자 확장 B (PDF, 13 MB)
- 윈도우 2000/XP용 GB18030 지원 패키지, 마이크로소프트의 중국어, 티베트어, 이, 몽골어 및 태국어 글꼴 포함 (인터넷 아카이브)
- SIL의 프리웨어 글꼴, 편집기 및 문서