GB 18030

GB 18030
GB 18030
GB18030 encoding.svg
GB 18030 부호화 레이아웃"Half codes"는 쌍으로 사용되는 코드를 4바이트 코드로 나타냅니다.
MIME / IANAGB18030
에일리어스코드 페이지 54936
언어국제적이지만 주로 중국인을 대상으로 합니다.
표준.GB 18030-2022, GB 18030-2005, GB 18030-2000
분류Unicode 변환 포맷, 확장 [a]ASCII, 가변인코딩, CJK 인코딩
확장EUC-CN, GBK
변환/인코딩ISO 10646(유니코드)
선행GBK, GB2312
  1. ^ ASCII 바이트는 트레일 바이트로 표시될 수 있기 때문에 이 용어의 가장 엄밀한 의미는 아닙니다.

GB 18030은 중국 정부의 표준 규격으로, 중국어로 코드화된 문자 집합으로 중국 내 소프트웨어에 필요한 언어 및 문자 지원을 정의합니다.GB18030GB2312[1]대체하는 중화인민공화국(PRC)의 공식 문자 집합의 등록된 인터넷 이름입니다.GB18030은 Unicode 변환 포맷[a](, 모든 Unicode 코드 포인트의 인코딩)으로서 간체 및 번체 중국어를 모두 지원합니다.또한 GB2312, CP936 [b] GBK 1.0 등의 레거시 인코딩과도 호환됩니다.

이 표준에는 "GB18030 문자 인코딩"과 더불어 지원해야 하는 스크립트, 글꼴 지원 [2]등에 대한 요건이 포함되어 있습니다.

역사

GB18030 문자 집합은 공식적으로 "Chinese National Standard GB 18030-2005: Information Technology-Chinese Coded 문자 집합"이라고 불립니다.GB abbreviates Guójiā Biāozhǔn (国家标准), which means national standard in Chinese.이 표준은 2005년 11월 8일 베이징의 중국표준통신에 의해 발행되었다.기준의 일부만 [2]필수입니다.2006년 5월 1일부터, PRC에서 판매되는 모든 소프트웨어 제품에 대해서, 필수 서브셋의 서포트가 공식적으로 요구되고 있습니다.

GB 18030 버전 간의 다른 Unicode 매핑
GB 바이트
순서
유니코드 코드 포인트
GB 18030-2000 GB 18030-2005
A8 BC ()) U+E7C7 U+1E3F ḿ
81 35 F4 37 U+1E3F ḿ U+E7C7

"Chinese National Standard GB 18030-2000: Information Technology - 정보 교환을 위한 중국어 한자 코드 문자 세트"로 알려진 이전 버전의 표준:기본 세트의 확장"은 2000년 3월 17일에 발행되었습니다.인코딩 방식은 새 버전에서도 동일하게 유지되며 GB/Unicode 매핑의 유일한 차이점은 GB 18030-2000이 문자를 매핑했다는 것입니다.A8 BC()) 전용 코드 포인트 U+E7C7 및 캐릭터81 35 F4 37GB 18030-2005는 이러한 2개의 매핑 [3]: 534 할당을 스왑합니다.유니코드 업데이트, 특히 CJK Unified Ideographes Extension B의 등장으로 인해 더 많은 코드 포인트가 문자와 연관되어 있습니다.몽골 문자티베트 문자(GB 16959-1997, GB/T 20542-2006) 등 중국 소수 민족이 사용하는 문자도 추가되어 표준 명칭이 변경되었다.

이전 버전과 비교하여 GB 18030의 Unicode 매핑은 Unicode Private Use Area 코드 포인트(U+E000–F8)가 임시로 할당된 81자로 수정되었습니다.FF)를 GBK 1.0으로 설정해,[4] 나중에 Unicode로 부호화되었습니다.이는 GB 18030의 [3]: 534 [5]: 499 부록E에 기재되어 있습니다.GB 18030-2005에는 유니코드 PUA에 [6]매핑되어 있는 문자가 24개 있습니다.

GB 18030-2022 업데이트에서는 PUA에 대한 문자 매핑 요건이 완전히 해제되어 모든 문자를 표준 Unicode 코드 포인트에 [7]매핑해야 합니다.

GB/Unicode 매핑의 개인 사용 문자
GB 바이트
순서
유니코드 코드 포인트
GBK 1.0[8][3]: 534 GB 18030-2005[6] 유니코드 4.1 GB 18030-2022[7]
A6 D9[9]: 108 U+E78D U+FE10
A6 DA U+E78E U+FE12
A6 DB U+E78F U+FE11
A6 DC U+E790 U+FE13
A6 DD U+E791 U+FE14
A6 DE U+E792 U+FE15
A6 DF U+E793 U+FE16
A6 EC U+E794 U+FE17
A6 ED U+E795 U+FE18
A6 F3 U+E796 U+FE19
A8 BC U+E7C7 U+1E3F ḿ
A8 BF U+E7C8 U+01F9 ǹ
A9 89 U+E7E7 U+303E
A9 8A U+E7E8 U+2FF0
A9 8B U+E7E9 U+2FF1
A9 8C U+E7EA U+2FF2
A9 8D U+E7EB U+2FF3
A9 8E U+E7EC U+2FF4
A9 8F U+E7ED U+2FF5
A9 90 U+E7EE U+2FF6
A991 U+E7EF U+2FF7
A9 92 U+E7F0 U+2FF8
A9 93 U+E7F1 U+2FF9
A9 94[9]: 173 U+E7F2 U+2FFA
A9 95 U+E7F3 U+2FB
FE 50 U+E815 U+2E81
FE 51 U+E816 U+20087 𠂇 [b] U+E816
FE 52 U+E817 U+20089 𠂉 [c] U+E817
FE 53 U+E818 U+200CC 𠃌 [d] U+E818
FE 54 U+E819 U+2E84
FE 55 U+E81A U+3473
FE 56 U+E81B U+3447
FE 57 U+E81C U+2E88
FE 58 U+E81D U+2E8B
FE 59 U+E81E U+9FB4
FE 5A U+E81F U+359E
FE 5B U+E820 U+361A
FE 5C U+E821 U+360E
FE 5D U+E822 U+2E8C
FE 5E U+E823 U+2E97
FE 5F U+E824 U+396E
FE 60 U+E825 U+3918
FE 61 U+E826 U+9FB5
FE 62 U+E827 U+39CF
FE 63 U+E828 U+39DF
FE 64 U+E829 U+3A73
FE 65 U+E82A U+39D0
FE 66 U+E82B U+9FB6
FE 67 U+E82C U+9FB7
FE 68 U+E82D U+3B4E
FE 69 U+E82E U+3C6E
FE 6A U+E82F U+3CE0
FE 6B U+E830 U+2EA7
FE 6C U+E831 U+215D7 𡗗 [e] U+E831
FE 6D U+E832 U+9FB8
FE 6E U+E833 U+2EAA
FE 6F U+E834 U+4056
FE 70 U+E835 U+415F
FE 71 U+E836 U+2EAE
FE 72 U+E837 U+4337
FE 73 U+E838 U+2EB3
FE 74 U+E839 U+2EB6
FE 75 U+E83A U+2EB7
FE 76 U+E83B U+2298F 𢦏 [f] U+E83B
FE 77 U+E83C U+43B1
FE 78 U+E83D U+43AC
FE 79 U+E83E U+2EBB
FE 7A U+E83F U+43DD
FE 7B U+E840 U+44D6
FE 7C U+E841 U+4661
FE 7D U+E842 U+464C
FE 7E U+E843 U+9FB9
FE 80 U+E844 U+4723
FE 81 U+E845 U+4729
FE 82 U+E846 U+477C
FE 83 U+E847 U+478D
FE 84 U+E848 U+2ECA
FE 85 U+E849 U+4947
FE 86 U+E84A U+497A
FE 87 U+E84B U+497D
FE 88 U+E84C U+4982
FE 89 U+E84D U+4983
FE 8A U+E84E U+4985
FE 8B U+E84F U+4986
FE 8C U+E850 U+499F
FE 8D U+E851 U+499B
FE 8E U+E852 U+49B7
FE 8F U+E853 U+49B6
FE 90 U+E854 U+9FBA
FE 91 U+E855 U+241FE 𤇾 [g] U+E855
FE 92 U+E856 U+4CA3
FE 93 U+E857 U+4C9F
FE 94 U+E858 U+4CA0
FE 95 U+E859 U+4CA1
FE 96 U+E85A U+4C77
FE 97 U+E85B U+4CA2
FE 98 U+E85C U+4D13
FE 99 U+E85D U+4D14
FE 9A U+E85E U+4D15
FE 9B U+E85F U+4D16
FE 9C U+E860 U+4D17
FE 9D U+E861 U+4D18
FE 9E U+E862 U+4D19
FE 9F U+E863 U+4DAE
FE A0 U+E864 U+9FBB
메모들
a. ^파란색은 개인 사용지역을 나타냅니다.
b.^U+20087매핑처0x95329031GB 18030-2022
c.^U+20089매핑처0x95329033GB 18030-2022
d.^U+200CC 매핑처0x95329730GB 18030-2022
e.^U+215D7매핑처0x9536B937GB 18030-2022
f.^U+2298F † 매핑처0x9630BA35GB 18030-2022
g.^U+241FE ™ 매핑처0x9635B630GB 18030-2022

국가 표준으로서

GB 18030-2005의 필수 부분은 1바이트 및 2바이트 인코딩과 CJK Unified Ideographics Extension A의 4바이트 인코딩으로 구성됩니다.잠정적인 프라이빗 할당을 포함한 이 서브셋의 대응하는 Unicode 코드 포인트는 모두 BMP[3]: 3 있습니다.이러한 부품은 완전 필수 GB 18030-2000에 [2]: 2 해당합니다.

대부분의 주요 컴퓨터 회사는 이미 일부 버전의 Unicode를 바이너리 형식과 OS 호출에서 사용하는 기본 포맷으로 표준화하고 있었습니다.단, Unicode 1.0에 정의되어 있는BMP에서는 대부분 지원되는 코드포인트만 있었습니다.이 코드 포인트는 65,536개만 지원되며 UCS-2로 16비트로 인코딩되는 경우가 많았습니다.

Unicode를 지원하는 소프트웨어에 대한 역사적인 움직임으로 PRC는 BMP [citation needed]외부에서 특정 코드[which?] 포인트의 지원을 의무화하기로 결정했습니다.즉, 소프트웨어는 문자를 16비트 고정 폭 엔티티(UCS-2)로 취급하는 것을 피할 수 없습니다.따라서 데이터를 가변폭 형식(UTF-8이나 UTF-16 등)으로 처리하거나 더 큰 고정폭 형식(UCS-4UTF-32 등)으로 이행해야 합니다.Windows 2000 에서는, Microsoft 는 UCS-2 에서 UTF-16 으로 변경을 실시했습니다.

매핑

GB 18030은 1(ASCII), 2(확장 GBK) 또는 4바이트(UTF) 인코딩을 정의합니다.2바이트 코드는 룩업테이블에 정의되어 있습니다.한편 4바이트 코드는 UCS에서 부호화되지 않은 부분을 채우기 위해 순차적으로 정의됩니다.GB 18030은 GBK의 단점을 계승하고 있으며, 특히 GB18030 시퀀스의 ASCII 문자를 안전하게 검출하기 위해 특별한 코드가 필요합니다.

GB 18030[3]: 3 [5]: 252 [10] 부호화
GB 18030 코드[c] 포인트 유니코드
바이트 1(MSB) 바이트 2 바이트 3 바이트 4
007F 128 0000007F
80 무효인[d]
81FE 40FE제외하고7F[e] 23940 0080FFFF제외하고D800DFFF[f]
8184 3039 81FE 3039 39420
85 - (12600) 향후 문자 확장을 위해 예약됨
868F - (102,000) 미래 표의 확장을 위해 예약됨
할당되어 있지 않다 D800DFFF[g]
90E3 3039 81FE 3039 1048576 1000010FFFF
E4FC - (315000) 미래 표준 확장을 위해 예약됨
FDFE - (25200) 사용자 정의의
FF 무효한
1112064

1바이트와 2바이트의 코드 포인트는 기본적으로 유로 기호가 있는 GBK, 미할당/사용자 정의 포인트에 대한 PUA 매핑 및 수직 구두점입니다.4바이트 방식은 각각2바이트씩 2개의 유닛으로 구성되어 있다고 생각할 수 있습니다.각 장치의 형식은 GBK 2바이트 문자와 비슷하지만 두 번째 바이트 값의 범위는 0x30 ~0x39(10진수의 ASCII 코드)입니다.첫 번째 바이트의 범위는 이전과 같이 0x81 ~0xFE입니다즉, GBK에 안전한 문자열 검색 루틴도 GB18030에 대해 상당히 안전해야 합니다(기본 바이트 지향 검색 루틴이 EUC에 대해 상당히 안전하다는 것과 거의 동일).

이는 총 1,587,600(126×10×126×10)의 가능한 4바이트 시퀀스를 제공하며, 이는 Unicode의 1,112,064(17×65536-2048 대체)에 할당, 예약 및 비문자 코드 포인트를 커버하기에 충분합니다.

안타깝게도 문제를 더 복잡하게 만들 수 있는 간단한 규칙은 4바이트 시퀀스와 대응하는 코드 포인트 사이에 없습니다.대신 코드는 다른 방법으로 [h]매핑되지 않은 Unicode 코드 포인트에만 순차적으로 할당됩니다( 번째 바이트에는 최상위 부분과 최하위 부분이 포함됩니다).예를 들어 다음과 같습니다.

U+00DE (δ) → 81 30 89 37 U+00DF ( ) ) → 81 30 89 38 U+00E0 ( → ) → A8 A4 U+00E1 ( a ) → A8 A2 U+00E2 ( → 81 30 89 39 U+00E3 ))

WHATWGW3C 버전의 GB 18030에서는 [11]코드 포인트를 효율적으로 변환하기 위해 오프셋 테이블을 사용합니다.ICU와[10] glibc는 동일한 범위 정의를 사용하여 대용량 순차 블록의 공간 낭비를 방지합니다.

지지하다

부호화

Windows 2000 에서는, GB18030 서포트[12] 패키지가 인스톨 되어 있는 경우, GB18030 인코딩을 서포트할 수 있습니다.Windows XP 에서는, 네이티브로 서포트할 수 있습니다.오픈 소스 PostgreSQL 데이터베이스는 UTF-8에 대한 완전한 지원을 통해 GB18030을 지원합니다.즉, UTF-8에서 변환하거나 UTF-16에서 변환하여 GB18030을 지원합니다. 마찬가지로 Microsoft SQL Server에서도 UTF-16으로 변환하여 GB18030을 지원합니다.

구체적으로는 Windows 상에서 GB18030 인코딩을 지원한다는 것은 Code Page 54936을 지원하는 것을 의미합니다.MultiByteToWideChar그리고.WideCharToMultiByte매핑의 하위 호환성을 위해 GB18030의 많은 파일은 코드 페이지 54936이 지원되지 않더라도 레거시 코드 페이지 936, 즉 GBK로 정상적으로 열 수 있습니다.단, 이는 해당 파일에 GBK 문자만 포함되어 있는 경우에만 해당됩니다.파일에 GBK에 존재하지 않는 문자가 포함되어 있는 경우 로딩이 실패하거나 결과가 파손됩니다(예에 대해서는 「Technical details를 참조해 주세요).

대부분의 Linux 디스트리뷰션에서 사용되는 문자 코덱 라이브러리인 GNU glibc의 gconv는 2.2 [13]이후 GB 18030-2000 및 2.14 [14]이후 GB 18030-2005를 지원합니다.glibc는 라운드 트립 [15]변환을 실현하기 위해 특히 GB 18030-2005의 비 PUA 매핑을 포함합니다.GNU libiconvCygwin과 같은 glibc UNIX가 아닌 환경에서 자주 사용되는 대체 아이콘으로 버전 1.4 이후 GB [16]18030을 지원합니다.

문자

Windows용 GB18030 지원 패키지에는 SimSun-18030과 NSimSun-18030 두 개의 중국어 글꼴을 결합한 TrueType 글꼴 모음 파일인 SimSun18030.tc가 포함되어 있습니다.그 SimSun 18030 글꼴 유니 코드 2.1항에서 모든 characters[해명 필요한]에 새로운 문자로 모든(백만에 대해)유니 코드 코드 U+10FFFF에 GB18030로 인코딩될 수 있는을 지적하지만, 그것의 명성에도 불구하고, 모든 문자 GB18030에서 만들어, 기호 포함하지 않는 유니 코드 한중일 통합 한자 확장 A블록에서 발견된 포함한다..GB 18030 컴플라이언스 인증에서는 필수(2바이트 및 CJK Ext)의 글리프를 올바르게 취급하고 인식하기만 하면 됩니다.A) 중국어 [2]: 4 파트다만, 표준의 PUA 문자의 요건이 이 [17]실장을 방해하고 있습니다.

HAN[18] NOM 및 Hanazono[19] Mincho와 같은 다른 CJK 글꼴 패밀리는 Unicode CJK Extension 블록에 SimSun-18030이나 SimSun(Foundor Extended)보다 더 넓은 범위를 제공하지만 Unicode 5.0.0에 정의된 모든 코드 포인트를 지원하는 것도 아닙니다.

「 」를 참조해 주세요.

메모들

  1. ^ GB18030 에서는 대용품은 생략되어 있습니다.# Mapping 을 참조해 주세요.
  2. ^ 유로 부호는 Microsoft의 최신 CP936/GBK 버전에서는 0x80의 단일 바이트 코드와 GB18030에서는 A2 E3의 2바이트 코드가 부여되는 예외입니다.
  3. ^ 코드 포인트에는 66 Unicode 비문자가 포함됩니다.
  4. ^ ICU가 이 코드 포인트를 유효하다고 잘못 간주하고 있는 것 같습니다.이것은 공개된 표준의 어느 버전에도 없습니다.WHATWG는 범용 gb2312-gbk-gb18030 디코더의 U+20AC(GBK 유로 부호)에 이 바이트를 할당합니다.
  5. ^ 이 범위의 상세한 구분에 대해서는, 「GBK(문자 부호화)」를 참조해 주세요.
  6. ^ 일부 코드 포인트는 2바이트(위 행)로 인코딩되고 다른 코드 포인트는 4바이트(아래 행)로 인코딩됩니다.U+FFFF는 다음과 같이 부호화됩니다.84 31 A4 392005년 기준 239페이지에 기재되어 있지만, 이 기준에서는84 39 FE 39BMP 매핑에 사용합니다.
  7. ^ 이것들은 대리 코드 포인트입니다.UTF-16 부호화 이외의 의미는 없습니다.
  8. ^ 또, U+E7C7과 U+1E3F의 부호화가 스왑 된 것에 의해서, U+E7C7은 2005년판에서는, U+1E3E(8135F436)와 U+1E40(8135F384) 사이에, 8135F437로서 부호화된다.따라서 2000 에디션만이 매핑되지 않은 코드 포인트에 4바이트 코드를 완전히 순차적으로 할당합니다.

레퍼런스

  1. ^ Anthony Fok (2002-03-15). "Application of IANA Charset Registration for GB18030". IANA Character Set Registrations. Retrieved 2016-12-05.
  2. ^ a b c d CESI (2009-07-08). "GB18030 符合性问与答" [GB18030 compliance FAQ]. CESI Certification Center. Archived from the original on 2016-09-28. Retrieved 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
  3. ^ a b c d e Standardization Administration of China (SAC) (2005-11-18). GB 18030-2005: Information Technology—Chinese coded character set.
  4. ^ "Unicode FAQ on GB 18030". ICU Project. Retrieved 10 September 2016.
  5. ^ a b GB 18030-2000: Information Technology—Chinese ideograms coded character set for information interchange—Extension for the basic set. Standardization Administration of China (SAC). 2000-03-17.
  6. ^ a b Lunde, Ken (2006). "L2/06-394 Update on GB 18030:2005". Unicode Technical Committee Document Registry. Retrieved 28 September 2016.
  7. ^ a b Lunde, Dr Ken (4 August 2022). "The GB 18030-2022 Standard". Medium. Retrieved 7 August 2022.
  8. ^ "Group:GBK外字". GlyphWiki. Retrieved 11 September 2016.
  9. ^ a b Lunde, Ken (December 2008). CJKV Information Processing. O'Reilly Media, Inc. ISBN 978-0-596-51447-1. Retrieved 11 September 2016.
  10. ^ a b GB18030-2000과 Unicode 사이의 신뢰할 수 있는 매핑테이블ICU – Unicode의 국제 컴포넌트.2001-02-21.2016-09-04에 접속.
  11. ^ "Encoding Standard # gb18030-index". WHATWG. Retrieved 2016-09-24.
  12. ^ Microsoft. "GB18030 Support Package". Microsoft. Archived from the original on 2012-06-05.
  13. ^ Drepper, Ulrich. "GB18030 iconv module for glibc". glibc git. Retrieved 29 November 2016.
  14. ^ Drepper, Ulrich. "Update GB18030 to 2005 version". glibc git. Retrieved 29 November 2016.
  15. ^ Weimer, Florian; O'Donell, Carlos. "Status of GB18030 tables (#19575)". Sourceware Bugzilla. Retrieved 29 November 2016.
  16. ^ "NEWS - libiconv.git - libiconv". git.savannah.gnu.org. Retrieved 2016-10-13.
  17. ^ 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.
  18. ^ VietUnicode. "/hannom". sourceforge.net. Retrieved 2016-10-13.
  19. ^ "Hanazono fonts". fonts.jp. Retrieved 2016-10-13.

외부 링크