본문으로 이동

GB 18030

위키백과, 우리 모두의 백과사전.
(GB18030에서 넘어옴)
GB 18030
GB 18030 인코딩 레이아웃.
MIME / IANAGB18030
다른 이름코드 페이지 54936
언어국제. (단, 중국어에 주로 사용)
표준GB 18030-2022, GB 18030-2005, GB 18030-2000
분류유니코드 변환 형식, 확장 ASCII,[a] 가변 너비 인코딩, CJK 인코딩
상위 인코딩EUC-CN, GBK
변환 / 암호ISO 10646 (유니코드)
이전 인코딩GBK, GB2312
  1. 용어의 엄격한 의미에서는 아니지만, ASCII 바이트는 트레일 바이트로 나타날 수 있다.
유니코드
부호화 형식
UCS
양방향 텍스트
BOM
한중일 통합 한자
유니코드 범위 목록
유니코드 등가성
유니코드와 HTML
유니코드와 전자 우편
유니코드 글꼴
v  d  e  h

GB 18030중국 정부 표준으로, 정보 기술 – 중국어 코드 문자 집합으로 설명되며 중국 내 소프트웨어에 필요한 언어 및 문자 지원을 정의한다. GB18030GB2312를 대체하는 중화인민공화국(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: 정보 기술—중국어 코드화 문자 집합"이라고 불린다. GBGuójiā Biāozhǔn (国家标准)의 약어로, 중국어로 국가 표준을 의미한다. 이 표준은 2005년 11월 8일 베이징의 중국 표준 출판사에서 발행되었다. 표준의 일부만 의무 사항이다.[6] 2006년 5월 1일부터 PRC에서 판매되는 모든 소프트웨어 제품에 대해 의무 하위 집합 지원이 공식적으로 요구된다.

GB 18030 버전 간의 유니코드 매핑 차이점
GB 바이트
시퀀스
유니코드 코드 포인트
GB 18030-2000 GB 18030-2005
A8 BC (ḿ)U+E7C7U+1E3F ḿ LATIN SMALL LETTER M WITH ACUTE
81 35 F4 37U+1E3F ḿ LATIN SMALL LETTER M WITH ACUTEU+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-유니코드 매핑의 개인 사용 문자
GB 바이트
시퀀스
유니코드 코드 포인트 [a]
GBK 1.0[12][7]:534 GB 18030-2005[10] 유니코드 4.1 GB 18030-2022[11]
A6 D9[13]:108U+E78D U+FE10 PRESENTATION FORM FOR VERTICAL COMMA
A6 DAU+E78EU+FE12 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
A6 DBU+E78FU+FE11 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
A6 DCU+E790U+FE13 PRESENTATION FORM FOR VERTICAL COLON
A6 DDU+E791U+FE14 PRESENTATION FORM FOR VERTICAL SEMICOLON
A6 DEU+E792U+FE15 PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
A6 DFU+E793U+FE16 PRESENTATION FORM FOR VERTICAL QUESTION MARK
A6 ECU+E794U+FE17 PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
A6 EDU+E795U+FE18 PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
A6 F3U+E796U+FE19 PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
A8 BCU+E7C7U+1E3F ḿ LATIN SMALL LETTER M WITH ACUTE
A8 BFU+E7C8U+01F9 ǹ LATIN SMALL LETTER N WITH GRAVE
A9 89U+E7E7U+303E IDEOGRAPHIC VARIATION INDICATOR
A9 8AU+E7E8U+2FF0 IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
A9 8BU+E7E9U+2FF1 IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
A9 8CU+E7EAU+2FF2 IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
A9 8DU+E7EBU+2FF3 IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
A9 8EU+E7ECU+2FF4 IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
A9 8FU+E7EDU+2FF5 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
A9 90U+E7EEU+2FF6 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
A9 91U+E7EFU+2FF7 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
A9 92U+E7F0U+2FF8 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
A9 93U+E7F1U+2FF9 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
A9 94[13]:173U+E7F2U+2FFA IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
A9 95U+E7F3U+2FFB IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
FE 50U+E815U+2E81 CJK RADICAL CLIFF
FE 51U+E816U+20087 𠂇 CJK UNIFIED IDEOGRAPH-20087[b]U+E816
FE 52U+E817U+20089 𠂉 CJK UNIFIED IDEOGRAPH-20089[c]U+E817
FE 53U+E818U+200CC 𠃌 CJK UNIFIED IDEOGRAPH-200CC[d]U+E818
FE 54U+E819U+2E84 CJK RADICAL SECOND THREE
FE 55U+E81AU+3473 CJK UNIFIED IDEOGRAPH-3473
FE 56U+E81BU+3447 CJK UNIFIED IDEOGRAPH-3447
FE 57U+E81CU+2E88 CJK RADICAL KNIFE ONE
FE 58U+E81DU+2E8B CJK RADICAL SEAL
FE 59U+E81EU+9FB4 CJK UNIFIED IDEOGRAPH-9FB4
FE 5AU+E81FU+359E CJK UNIFIED IDEOGRAPH-359E
FE 5BU+E820U+361A CJK UNIFIED IDEOGRAPH-361A
FE 5CU+E821U+360E CJK UNIFIED IDEOGRAPH-360E
FE 5DU+E822U+2E8C CJK RADICAL SMALL ONE
FE 5EU+E823U+2E97 CJK RADICAL HEART TWO
FE 5FU+E824U+396E CJK UNIFIED IDEOGRAPH-396E
FE 60U+E825U+3918 CJK UNIFIED IDEOGRAPH-3918
FE 61U+E826U+9FB5 CJK UNIFIED IDEOGRAPH-9FB5
FE 62U+E827U+39CF CJK UNIFIED IDEOGRAPH-39CF
FE 63U+E828U+39DF CJK UNIFIED IDEOGRAPH-39DF
FE 64U+E829U+3A73 CJK UNIFIED IDEOGRAPH-3A73
FE 65U+E82AU+39D0 CJK UNIFIED IDEOGRAPH-39D0
FE 66U+E82BU+9FB6 CJK UNIFIED IDEOGRAPH-9FB6
FE 67U+E82CU+9FB7 CJK UNIFIED IDEOGRAPH-9FB7
FE 68U+E82DU+3B4E CJK UNIFIED IDEOGRAPH-3B4E
FE 69U+E82EU+3C6E CJK UNIFIED IDEOGRAPH-3C6E
FE 6AU+E82FU+3CE0 CJK UNIFIED IDEOGRAPH-3CE0
FE 6BU+E830U+2EA7 CJK RADICAL COW
FE 6CU+E831U+215D7 𡗗 CJK UNIFIED IDEOGRAPH-215D7[e]U+E831
FE 6DU+E832U+9FB8 CJK UNIFIED IDEOGRAPH-9FB8
FE 6EU+E833U+2EAA CJK RADICAL BOLT OF CLOTH
FE 6FU+E834U+4056 CJK UNIFIED IDEOGRAPH-4056
FE 70U+E835U+415F CJK UNIFIED IDEOGRAPH-415F
FE 71U+E836U+2EAE CJK RADICAL BAMBOO
FE 72U+E837U+4337 CJK UNIFIED IDEOGRAPH-4337
FE 73U+E838U+2EB3 CJK RADICAL NET THREE
FE 74U+E839U+2EB6 CJK RADICAL SHEEP
FE 75U+E83AU+2EB7 CJK RADICAL RAM
FE 76U+E83BU+2298F 𢦏 CJK UNIFIED IDEOGRAPH-2298F[f]U+E83B
FE 77U+E83CU+43B1 CJK UNIFIED IDEOGRAPH-43B1
FE 78U+E83DU+43AC CJK UNIFIED IDEOGRAPH-43AC
FE 79U+E83EU+2EBB CJK RADICAL BRUSH TWO
FE 7AU+E83FU+43DD CJK UNIFIED IDEOGRAPH-43DD
FE 7BU+E840U+44D6 CJK UNIFIED IDEOGRAPH-44D6
FE 7CU+E841U+4661 CJK UNIFIED IDEOGRAPH-4661
FE 7DU+E842U+464C CJK UNIFIED IDEOGRAPH-464C
FE 7EU+E843U+9FB9 CJK UNIFIED IDEOGRAPH-9FB9
FE 80U+E844U+4723 CJK UNIFIED IDEOGRAPH-4723
FE 81U+E845U+4729 CJK UNIFIED IDEOGRAPH-4729
FE 82U+E846U+477C CJK UNIFIED IDEOGRAPH-477C
FE 83U+E847U+478D CJK UNIFIED IDEOGRAPH-478D
FE 84U+E848U+2ECA CJK RADICAL FOOT
FE 85U+E849U+4947 CJK UNIFIED IDEOGRAPH-4947
FE 86U+E84AU+497A CJK UNIFIED IDEOGRAPH-497A
FE 87U+E84BU+497D CJK UNIFIED IDEOGRAPH-497D
FE 88U+E84CU+4982 CJK UNIFIED IDEOGRAPH-4982
FE 89U+E84DU+4983 CJK UNIFIED IDEOGRAPH-4983
FE 8AU+E84EU+4985 CJK UNIFIED IDEOGRAPH-4985
FE 8BU+E84FU+4986 CJK UNIFIED IDEOGRAPH-4986
FE 8CU+E850U+499F CJK UNIFIED IDEOGRAPH-499F
FE 8DU+E851U+499B CJK UNIFIED IDEOGRAPH-499B
FE 8EU+E852U+49B7 CJK UNIFIED IDEOGRAPH-49B7
FE 8FU+E853U+49B6 CJK UNIFIED IDEOGRAPH-49B6
FE 90U+E854U+9FBA CJK UNIFIED IDEOGRAPH-9FBA
FE 91U+E855U+241FE 𤇾 CJK UNIFIED IDEOGRAPH-241FE[g]U+E855
FE 92U+E856U+4CA3 CJK UNIFIED IDEOGRAPH-4CA3
FE 93U+E857U+4C9F CJK UNIFIED IDEOGRAPH-4C9F
FE 94U+E858U+4CA0 CJK UNIFIED IDEOGRAPH-4CA0
FE 95U+E859U+4CA1 CJK UNIFIED IDEOGRAPH-4CA1
FE 96U+E85AU+4C77 CJK UNIFIED IDEOGRAPH-4C77
FE 97U+E85BU+4CA2 CJK UNIFIED IDEOGRAPH-4CA2
FE 98U+E85CU+4D13 CJK UNIFIED IDEOGRAPH-4D13
FE 99U+E85DU+4D14 CJK UNIFIED IDEOGRAPH-4D14
FE 9AU+E85EU+4D15 CJK UNIFIED IDEOGRAPH-4D15
FE 9BU+E85FU+4D16 CJK UNIFIED IDEOGRAPH-4D16
FE 9CU+E860U+4D17 CJK UNIFIED IDEOGRAPH-4D17
FE 9DU+E861U+4D18 CJK UNIFIED IDEOGRAPH-4D18
FE 9EU+E862U+4D19 CJK UNIFIED IDEOGRAPH-4D19
FE 9FU+E863U+4DAE CJK UNIFIED IDEOGRAPH-4DAE
FE A0U+E864U+9FBB CJK UNIFIED IDEOGRAPH-9FBB
참고
a.^ 파란색은 개인 사용 영역을 나타낸다.
b.^ U+20087 𠂇 CJK UNIFIED IDEOGRAPH-20087는 GB 18030-2022에서 0x95329031에 매핑된다.
c.^ U+20089 𠂉 CJK UNIFIED IDEOGRAPH-20089는 GB 18030-2022에서 0x95329033에 매핑된다.
d.^ U+200CC 𠃌 CJK UNIFIED IDEOGRAPH-200CC는 GB 18030-2022에서 0x95329730에 매핑된다.
e.^ U+215D7 𡗗 CJK UNIFIED IDEOGRAPH-215D7는 GB 18030-2022에서 0x9536B937에 매핑된다.
f.^ U+2298F 𢦏 CJK UNIFIED IDEOGRAPH-2298F는 GB 18030-2022에서 0x9630BA35에 매핑된다.
g.^ U+241FE 𤇾 CJK UNIFIED IDEOGRAPH-241FE는 GB 18030-2022에서 0x9635B630에 매핑된다.

국가 표준으로서

[편집]

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 인코딩[7]:3[9]:252[19]
GB 18030 코드 포인트[c] 유니코드
바이트 1 (최상위 바이트)바이트 2바이트 3바이트 4
007F 128 0000007F
80 무효[d]
81FE40FE (7F 제외)[e] 23940 0080FFFF (D800DFFF 제외)[f]
8184 3039 81FE 3039 39420
85 — (12600) 향후 문자 확장용으로 예약됨
868F — (126000) 향후 한자 확장용으로 예약됨
할당되지 않음 D800DFFF[g]
90E3 3039 81FE 3039 1048576 1000010FFFF
E4FC — (315000) 향후 표준 확장용으로 예약됨
FDFE — (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

WHATWGW3C 버전의 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 인코딩을 지원한다는 것은 코드 페이지 54936MultiByteToWideCharWideCharToMultiByte에 의해 지원된다는 의미이다. 매핑의 하위 호환성으로 인해, 코드 페이지 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 YaHeiDengXian은 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에 정의된 모든 코드 포인트를 지원하지는 않는다.

같이 보기

[편집]

내용주

[편집]
  1. Note that GB18030 omits surrogates; see § Mapping.
  2. 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.
  3. 코드 포인트에는 66개의 유니코드 비문자가 포함된다.
  4. ICU는 이 코드 포인트를 잘못 유효하다고 간주하는 것으로 보이며, 이는 게시된 표준의 어느 버전에도 없다. WHATWG는 이 바이트를 유니버설 gb2312-gbk-gb18030 디코더에서 U+20AC (GBK 유로 기호)에 할당한다.
  5. 이 범위의 더 세분화된 구분은 GBK (문자 인코딩) § 인코딩을 참조하라.
  6. 일부 코드 포인트는 2바이트(위쪽 행)로, 다른 코드 포인트는 4바이트(아래쪽 행)로 인코딩된다. U+FFFF는 2005년 표준의 239페이지에서 84 31 A4 39로 인코딩되어 있지만, 표준은 BMP 매핑에 대해 84 39 FE 39까지 제공한다.
  7. 이들은 대리 코드 포인트이다. 이들은 UTF-16 인코딩 외부에서는 의미가 없다.
  8. 또한, 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년 판만 완전히 순차적이다.

각주

[편집]
  1. Anthony Fok (2002년 3월 15일). Application of IANA Charset Registration for GB18030. IANA Character Set Registrations. 2016년 12월 5일에 확인함.
  2. Disruptive Changes in GB 18030-2022 (PDF). www.unicode.org. 2024년 2월 12일에 확인함.
  3. [JDK-8301119] Support for GB18030-2022 - Java Bug System. bugs.openjdk.org. 2023년 8월 14일에 확인함.
  4. JDK 21 Release Notes. jdk.java.net. 2023년 8월 14일에 원본 문서에서 보존된 문서. 2023년 8월 14일에 확인함.
  5. [JDK-8307340] Release Note: Support for GB18030-2022 - Java Bug System. bugs.openjdk.org. 2023년 8월 30일에 확인함.
  6. 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
  7. 1 2 3 4 5 Standardization Administration of China (SAC) (2005년 11월 18일). GB 18030-2005: Information Technology—Chinese coded character set.
  8. Unicode FAQ on GB 18030. ICU Project. 2018년 3월 2일에 원본 문서에서 보존된 문서. 2016년 9월 10일에 확인함.
  9. 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일.
  10. 1 2 3 Lunde, Ken (2006). L2/06-394 Update on GB 18030:2005. Unicode Technical Committee Document Registry. 2016년 9월 28일에 확인함.
  11. 1 2 3 Lunde, Ken (2022년 8월 4일). The GB 18030-2022 Standard (영어). Medium. 2022년 8월 7일에 확인함.
  12. Group:GBK外字. GlyphWiki. 2016년 9월 11일에 확인함.
  13. 1 2 Lunde, Ken (December 2008). CJKV Information Processing. O'Reilly Media, Inc. ISBN 978-0-596-51447-1. 2016년 9월 11일에 확인함.
  14. 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.]
  15. Lunde, Dr Ken (2023년 11월 12일). The First Amendment (영어). Medium. 2024년 9월 9일에 확인함.
  16. China National Body (2023년 4월 26일). GB 18030—2022《信息技术 中文编码字符集》国家标准第1号修改单(征求意见稿) (PDF). UTC L2/23-113.
  17. 1 2 China National Body (2023년 10월 13일). IRG #61 Activity Report (PDF). ISO/IEC JTC1/SC2/WG2/IRG N2623; UTC L2/23-240.
  18. 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.
  19. 1 2 GB18030-2000과 유니코드 간의 공인 매핑 테이블. ICU  International Components for Unicode. 2001-02-21. Accessed 2016-09-04.
  20. Encoding Standard # gb18030-index. WHATWG. 2016년 9월 24일에 확인함.
  21. Bridge, Karl (2021년 10월 13일). MultiByteToWideChar function (stringapiset.h) - Win32 apps (미국 영어). learn.microsoft.com. 2022년 11월 1일에 확인함.
  22. Microsoft. GB18030 Support Package. 마이크로소프트. 2012년 6월 5일에 원본 문서에서 보존된 문서.
  23. Drepper, Ulrich. GB18030 iconv module for glibc.. glibc git. 2016년 11월 29일에 확인함.
  24. Drepper, Ulrich. Update GB18030 to 2005 version. glibc git. 2016년 11월 29일에 확인함.
  25. Weimer, Florian; O'Donell, Carlos. Status of GB18030 tables (#19575). Sourceware Bugzilla. 2016년 11월 29일에 확인함.
  26. NEWS - libiconv.git - libiconv. git.savannah.gnu.org. 2016년 10월 13일에 확인함.
  27. 1 2 3 Lunde, Ken (2022년 8월 16일). The GB 18030-2022 Standard (영어). Medium. 2022년 11월 1일에 확인함.
  28. 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.
  29. July 11, 2023—KB5028171 (OS Build 20348.1850) - Microsoft Support. support.microsoft.com. Microsoft. 2024년 3월 25일에 확인함.
  30. VietUnicode. /hannom. sourceforge.net. 2016년 10월 13일에 확인함.
  31. Hanazono fonts. fonts.jp. 2010년 4월 12일에 원본 문서에서 보존된 문서. 2016년 10월 13일에 확인함.

외부 링크

[편집]