GB 2312

는 중화인민공화국의 주요 공식 문자 집합으로, 간체자에 사용된다. GB2312는 통상적인 인코딩 형식인 EUC-CN에 등록된 인터넷 이름이다. GB는 궈뱌오 표준(国家标准)을 의미하며, T 접미사()는 비강제 표준을 나타낸다.

는 원래 로 지정된 강제 국가 표준이었다. 그러나 2017년 중화인민공화국 국가표준공보에 따라 GB 2312는 더 이상 강제 표준이 아니며, 표준 코드는 로 변경되었다. 는 추가 문자를 포함하는 GBK와 GB 18030으로 대체되었지만, 는 이들 인코딩의 부분 집합으로 여전히 널리 사용되고 있다.

 기준으로 GB2312는 중국 및 해당 지역에서 제공되는 인코딩 중 UTF-8 다음으로 두 번째로 많이 사용되는 인코딩으로, 웹 서버의 5.5%가 이를 선언하는 페이지를 제공한다. 전 세계적으로 GB2312는 전체 웹 페이지의 0.1%에서 선언된다. 그러나 대부분의 주요 웹 브라우저는 GB_2312 레이블이 붙은 사파리와 엣지를 제외하고는 GB2312로 표시된 문서를 상위 집합인 GBK 인코딩으로 표시된 것처럼 디코딩한다.

GB/T 12345 정보 교환용 한자 보충 집합 코드로 알려진 유사한 문자 집합이 있는데, 이는 GB/T 2312를 정체자 형태로 보충하여 간체 형태를 그 위코드(qūwèi code)로 대체하고, 추가로 62개의 보충 문자를 포함한다. GB 인코딩된 글꼴은 종종 GB/T 2312(간체) 문자 집합과 GB/T 12345(정체) 문자 집합으로 쌍을 이룬다. GB/T 2312를 보충하는 더 많은 GB 보충 인코딩 집합이 존재하는데, 여기에는 정보 교환을 위한 중국 한자 집합의 두 번째 보충 집합인 GB/T 7589와 정보 교환을 위한 중국 한자 집합의 네 번째 보충 집합인 GB/T 7590이 포함되며, 이는 동일한 위코드(qūwèi encoding) 형식([변이 한자]에 추가 [Variant Chinese characters|변이 문자])을 제공하지만(나중에 ISO-2022-CN에서 사용), GB/T 2312에 인코딩된 문자들과는 관련이 없다.

 행별 문자 범위 
GB/T 2312는 현대 중국어 텍스트 사용의 99.99% 이상을 포괄하지만 역사적인 텍스트와 많은 이름은 범위 밖에 남아 있다. 오래된  표준은 6,763개의 한자(두 가지 수준: 첫 번째는 읽기 순서, 두 번째는 부수 및 획수 순서)와 기호 및 구두점, 일본어 가나, 그리스 문자, 키릴 문자, 병음, 그리고 성조 표시가 있는 두 바이트 병음 문자의 집합을 포함한다. 나중 버전인 GB/T 2312-1980에는 7,445개의 문자가 있다.

GB/T 2312의 문자는 94×94 그리드에 배열되어 있으며(ISO 2022와 같이), 각 문자의 2바이트 코드 포인트는 행(qū, )과 해당 행 내 문자의 위치(셀, wèi; )를 지정하는 qūwèi() 형식으로 표현된다. (이 구조는 다른 ISO-2022 기반 국가 CJK 문자 집합 표준에서 사용되는 것과 동일하다. 쿠텐과 비교해 보라.) 예를 들어 "外" (의미: 외국) 문자는 45행 66열에 위치하므로, 그 qūwèi 코드는 45-66이다.

행(1에서 94까지 번호 매겨짐)은 다음과 같이 문자를 포함한다.

 01–09, 구두점 및 기타 특수 문자로 구성, 또한 히라가나, 가타카나, 그리스 문자, 키릴 문자, 병음, 주음부호
 16–55, 병음에 따라 배열된 첫 번째 수준의 한자. (3755자).
 56–87, 부수 및 획수에 따라 배열된 두 번째 수준의 한자. (3008자).

10–15행과 88–94행은 할당되지 않았다.

GB/T 2312-1980은 682개의 기호와 6763개의 한자를 포함한다.

 GB/T 2312 인코딩 

 EUC-CN 
EUC-CN은 GB/T 2312를 다루는 프로그램에서 문자 인코딩(즉, 외부 저장용)으로 자주 사용되며, 이를 통해 ASCII와의 호환성을 유지한다. ASCII에 없는 모든 문자를 표현하기 위해 두 바이트가 사용된다. 첫 번째 바이트의 값은 0xA1–0xF7(161–247) 범위이고, 두 번째 바이트의 값은 0xA1–0xFE(161–254) 범위이다. 이 모든 범위는 ASCII를 벗어나므로, UTF-8과 마찬가지로 EUC-CN을 사용할 때 바이트가 다중 바이트 구성의 일부인지 확인할 수 있지만, 바이트가 첫 번째 바이트인지 마지막 바이트인지는 확인할 수 없다.

UTF-8과 비교하여 GB/T 2312(자체 인코딩이든 EUC-CN으로 인코딩되었든)는 저장 효율성이 더 높다. UTF-8은 한중일 한자당 3바이트를 사용하는 반면, GB/T 2312는 2바이트만 사용한다. 그러나 GB/T 2312는 유니코드만큼 많은 한자를 포괄하지 않는다.

qūwèi 코드 포인트를 EUC 바이트에 매핑하려면 행 번호(또는 qū, 区)와 셀/열 번호(또는 wèi, 位) 모두에 160(0xA0)을 더한다. 코드 포인트의 행 번호에 더한 결과는 상위 바이트가 되고, 코드 포인트의 셀 번호에 더한 결과는 하위 바이트가 된다.

예를 들어, qūwèi 셀 45-66에 있는 문자 "外"를 인코딩하려면 상위 바이트는 행 번호 45를 사용하여 45+160=205=0xCD가 되고, 하위 바이트는 셀 번호 66에서 66+160=226=0xE2가 된다. 따라서 전체 인코딩은 <CD E2>이다.

 ISO-2022-CN 
ISO-2022-CN은 GB/T 2312의 또 다른 인코딩 형식으로, 공식 문서에 명시된 인코딩이기도 하다. 이 인코딩은 ISO-2022 표준을 참조하며, 이 또한 ASCII에 없는 문자를 인코딩하기 위해 두 바이트를 사용한다. 그러나 ASCII의 확장 영역을 사용하는 대신, ISO-2022는 ASCII와 동일한 바이트 범위(첫 번째 바이트의 값은 0x21–0x77(33–119) 범위이고, 두 번째 바이트의 값은 0x21–0x7E(33–126) 범위)를 사용한다. 바이트 범위가 ASCII와 크게 겹치기 때문에, 문자가 ASCII 범위에 속하는지 아니면 확장 영역의 두 바이트 시퀀스의 일부인지를 나타내기 위해 특수 문자(즉, Shift Out 및 Shift In 함수)가 필요하다. 이는 텍스트를 부적절하게 처리할 경우 정보 손실을 초래할 수 있으므로 잘못된 인코딩의 위험을 초래한다.

qūwèi 코드 포인트를 ISO-2022 바이트에 매핑하려면 행 번호(또는 qū, 区)와 셀/열 번호(또는 wèi, 位) 모두에 32(0x20)를 더한다. 코드 포인트의 행 번호에 더한 결과는 상위 바이트가 되고, 코드 포인트의 셀 번호에 더한 결과는 EUC 인코딩과 유사하게 하위 바이트가 된다.

예를 들어, qūwèi 셀 45-66에 있는 문자 "外"를 인코딩하려면 상위 바이트는 행 번호 45를 사용하여 45+32=77=0x4D가 되고, 하위 바이트는 셀 번호 66에서 66+32=98=0x62가 된다. 따라서 전체 인코딩은 <4D 62>이다.

 HZ 
HZ는 주로 유즈넷 게시물에 사용되는 GB/T 2312의 또 다른 인코딩이다. 문자는 ISO-2022-CN과 동일한 바이트 쌍으로 표현되지만, GB 2312 텍스트 범위의 시작과 끝을 나타내는 바이트 시퀀스는 다르다.

 코드 차트 
아래 표에서 접두사 바이트 또는 코딩 바이트에 십육진수 쌍이 주어질 때, 더 작은 값(8번째 비트가 설정되지 않았거나 사용할 수 없음)은 GL(0x21-0x7E)로 인코딩될 때 사용되며, 이는 ISO-2022-CN 또는 HZ-GB-2312의 경우이다. 더 큰 값(8번째 비트가 설정됨)은 GR(0xA1-0xFE)로 인코딩되는 더 일반적인 경우에 사용되며, 이는 EUC-CN, GBK 또는 GB 18030의 경우이다. 위코드(Qūwèi) 번호는 십진법으로 주어진다.

GB/T 2312가 GR로 인코딩될 때, 두 바이트 모두 8번째 비트가 설정된다(즉, 0x7F보다 크다). GBK와 GB 18030은 확장 목적으로 첫 번째 바이트만 8번째 비트가 설정된 2바이트 코드를 사용하기도 한다. 이러한 코드는 GB/T 2312 평면 밖에 있으며, 여기에는 표로 나타나 있지 않다.

 선행 바이트 
이 차트는 선행 바이트에 따른 GB/T 2312 문자 집합의 기본 평면 전체 레이아웃을 자세히 설명한다. 한자 이외의 문자에 사용되는 선행 바이트의 경우, 해당 선행 바이트 아래에 인코딩된 문자를 나열하는 이 페이지의 차트 링크가 제공된다. 한자에 사용되는 선행 바이트의 경우, 위키낱말사전의 한자 색인의 해당 섹션 링크가 제공된다.

 비한자 행 
다음 차트는 GB/T 2312, GB/T 12345 및 GB 18030의 2바이트 영역 1(GB/T 2312의 비한자 영역과 대략 일치)에서 사용 가능한 비한자 문자를 나열한다. 이들이 서로 다른 점과 GB 6345.1 및 ISO-IR-165가 이들과 다른 점을 표시한다. 다른 CJK 국가 문자 집합과의 비교를 위해 해당 문서에 상호 참조를 제공한다.

 GB2312의 두 가지 구현 
 EUC-CN  GBK/GB18030 부분 집합  GB2312.TXT  문자 이름A1A4A1AA

GBK 및 GB 18030의 GB/T 2312에 해당하는 부분 집합에서 가운뎃점() 및 줄표()의 유니코드 매핑( 및 )은 유니코드 컨소시엄에서 이전에 제공했던 데이터 파일인 GB2312.TXT( 및 )에 나열된 것과 다르다. 이 파일은 2011년 8월부터 더 이상 사용되지 않는 것으로 지정되었으며 2016년 9월 현재 호스팅되지 않는다.

2015년 현재, 마이크로소프트 .Net 프레임워크는 로 레이블이 지정된 데이터에서 해당 두 문자를 매핑할 때 GB 18030 매핑을 따르는 반면, ICU, iconv-1.14, php-5.6, ActivePerl-5.20, Java 1.7 및 Python 3.4는  레이블에 따라 GB2312.TXT를 따른다. 루비 2.2는 두 구현 모두와 호환되며, 충돌하는 문자를 내부적으로 GB 18030 부분 집합으로 변환한다. W3C/WHATWG의 HTML5 사용 기술 권고는 gb2312로 레이블이 지정된 스트림에 대해 GBK 인코딩을 유추하도록 지정하며, 이는 다시 GB18030 디코더를 사용한다.

애플을 포함하여 개별 공급업체에서 정의하고 사용한 다른 매핑도 있다.

 문자 집합 0x21/0xA1 (1행: 구두점 및 기호) 
이 행에는 구두점, 수학 연산자 및 기타 기호가 포함되어 있다. 다음 표는 이들 GB/T 2312 문자에 대한 GB 18030 매핑을 먼저 보여주고, 그 다음 다른 문서화된 매핑을 보여준다.

 문자 집합 0x22/0xA2 (2행: 목록 표식) 
이 행에는 다양한 유형의 목록 표식이 포함되어 있다. 로마 숫자의 소문자 형태는 원래 GB/T 2312나 GB/T 12345에는 포함되지 않았지만, 윈도우 코드 페이지 936과 GB 18030 모두에 포함되어 있다. 유로 기호 또한 GB 18030에 의해 추가되었다.

 문자 집합 0x23/0xA3 (3행: ISO 646-CN) 
이 행에는 ISO 646-CN(GB/T 1988-80)이 포함되어 있으며, 이는 ASCII의 국가적 대응물이다. KS X 1001의 3행과 비교해 보라. 이 행은 대한민국의 ISO 646 버전과 동일하게 처리하며, JIS X 0208의 3행 및 KPS 9566의 3행과 비교해 보라. 이들은 영숫자 부분 집합만 포함하지만 동일한 레이아웃을 사용한다. 다음 차트는 ISO 646-CN을 나열한다.

EUC-CN(및 상위 집합인 GB 18030)과 같이 ASCII와의 조합을 허용하는 인코딩에서 사용될 때, 이 문자들은 일반적으로 전각 문자로 구현되므로, 아래에 표시된 반각 및 전각 문자 블록으로의 매핑이 사용된다. GB 6345.1 또한 이 행을 전각으로 처리하며, 10행으로 반각 형태(위와 동일)를 추가한다. 애플은 이 행을 아래와 같이 대부분 전각 코드 포인트에 매핑하지만, 위안 기호는 위와 같이 비전각 매핑을 사용한다.

 문자 집합 0x24/0xA4 (4행: 히라가나) 
이 집합에는 일본어를 작성하기 위한 히라가나가 포함되어 있다.

이 행과 일치하는 JIS X 0208의 4행, 그리고 동일한 레이아웃을 사용하지만 다른 행에 있는 KS X 1001의 10행 및 KPS 9566과 비교해 보라.

 문자 집합 0x25/0xA5 (5행: 가타카나) 
이 집합에는 일본어를 작성하기 위한 가타카나가 포함되어 있다. 그러나 가타카나 텍스트에 사용되며 JIS X 0208의 1행에 포함된 일본어 장음 마크는 GB/T 2312에 포함되지 않는다. GBK 및 GB 18030에는 0xA960의 주 GB/T 2312 평면 외부에 추가된다.

이 행과 일치하는 JIS X 0208의 5행, 그리고 동일한 레이아웃을 사용하지만 다른 행에 있는 KS X 1001의 11행 및 KPS 9566과 비교해 보라.

 문자 집합 0x26/0xA6 (6행: 그리스어 및 세로 확장) 
이 행에는 최종 시그마나 발음 구별 부호가 없는 현대 그리스 문자에 대한 기본 지원이 포함되어 있다.

강조 표시된 문자는 세로 쓰기를 위한 구두점의 표시 형식으로, GB/T 2312 자체에는 포함되지 않지만, GB/T 12345, 윈도우 코드 페이지 936, Mac OS 간체자, 및 GB 18030의 이 행에 포함되어 있다. 이들은 "GB 2312의 표준 확장"으로 간주된다. 반대로, ISO-IR-165는 이 행에 패턴화된 준그래픽 문자를 포함하며(유니코드에 정확히 대응하는 문자는 거의 없음), 세로 확장에 사용되는 코드 위치와 충돌한다.

세로 형태가 포함되지 않을 때 이 행과 일치하는 JIS X 0208의 6행과 비교해 보라. 또한 동일한 레이아웃에 동일한 그리스 문자가 포함되어 있지만 세로 형태 대신 로마 숫자를 추가하는 KPS 9566의 6행과 비교해 보라. 로마 숫자를 먼저 포함하기 위해 그리스 문자를 오프셋하는 KS X 1001의 5행과는 대조된다.

 문자 집합 0x27/0xA7 (7행: 키릴 문자) 
이 집합에는 33개의 키릴 문자 양쪽 대소문자가 포함되어 있으며, 현대 러시아어 및 불가리아어를 작성하기에 충분하지만, 다른 형태의 키릴 문자에는 추가 문자가 필요하다.

이 행과 일치하는 JIS X 0208의 7행과 비교해 보라. 또한 동일한 레이아웃을 사용하지만 다른 행에 있는 KS X 1001의 12행 및 KPS 9566의 5행과 비교해 보라.

 문자 집합 0x28/0xA8 (8행: 주음부호 및 비ASCII 병음) 
이 행에는 ASCII 문자(3행에 있음)를 제외한 주음부호 및 병음 문자가 포함되어 있다. 강조 표시된 문자는 기본 GB 2312 집합에는 없지만 GB 6345.1에 의해 추가된 문자이며, GB/T 12345, 윈도우 코드 페이지 936, Mac OS 간체자 및 GB 18030에도 포함되어 있다. 이들은 "GB 2312의 표준 확장"으로 간주된다.

GB 6345.1은 이 행의 병음을 전각으로 처리하고, 11행에 반각 형태를 포함한다. GB 18030은 이를 따르지 않는다.

 문자 집합 0x29/0xA9 (9행: 상자 그리기) 

 수정 
GB 5007.1-85 24×24 비트맵 글꼴 정보 교환용 한자 집합()은 GB/T 2312를 기반으로 한 가장 초기 글꼴 템플릿으로, 다음을 포함한 수정 및 확장을 특징으로 한다.
 라틴 음소문자 "g"의 글리프 모양 변경
 6개의 한어병음 문자 추가: ɑ, ḿ, ń, ň, ǹ, ɡ
 ""을 ""으로 변경
 10행에 94개의 반각 글리프 포함 (3행의 반각 형태, GB 1988–80에 해당)
 8행에서 32개의 한어병음 문자의 반각 형태를 11행에 포함.

GB/T 2312는 수정 사항이 없었지만, 이러한 수정 사항은 GB/T 12345를 포함하여 GB/T 2312를 기반으로 하는 글꼴 템플릿에 포함되어 있으며, 그 상위 집합인 GBK 및 GB 18030도 이러한 수정 사항을 포함한다. GB/T 2312는 ISO-IR-165에도 사용된다.

 공식 글꼴 집합 
GB 5007.1—1985 24×24 정보 교환용 한자 점자 글꼴 집합
GB 5007.2—1985 24×24 정보 교환용 한자 점자 글꼴 데이터 집합
GB 5199.1—1985 15×16 정보 교환용 한자 점자 글꼴 집합
GB 5199.2—1985 15×16 정보 교환용 한자 점자 글꼴 데이터 집합
GB 6345.1—1986 32×32 정보 교환용 한자 점자 글꼴 집합
GB 6345.2—1986 32×32 정보 교환용 한자 점자 글꼴 데이터 집합
GB/T 12034—1989 32×32 정보 교환용 한자 점자 방성체 글꼴 집합 및 데이터 집합
GB/T 12035—1989 32×32 정보 교환용 한자 점자 해서체 글꼴 집합 및 데이터 집합
GB/T 12036—1989 32×32 정보 교환용 한자 점자 흑체 글꼴 집합 및 데이터 집합
GB/T 12037—1989 36×36 정보 교환용 한자 점자 송체 글꼴 집합 및 데이터 집합
GB/T 12038—1989 36×36 정보 교환용 한자 방성체 글꼴 집합 및 데이터 집합
GB/T 12039—1989 36×36 정보 교환용 한자 해서체 글꼴 집합 및 데이터 집합
GB/T 12040—1989 36×36 정보 교환용 한자 흑체 글꼴 집합 및 데이터 집합
GB/T 12041—1989 48×48 정보 교환용 한자 송체 글꼴 집합 및 데이터 집합
GB/T 12042—1989 48×48 정보 교환용 한자 방성체 글꼴 집합 및 데이터 집합
GB/T 12043—1989 48×48 정보 교환용 한자 해서체 글꼴 집합 및 데이터 집합
GB/T 12044—1989 48×48 정보 교환용 한자 흑체 글꼴 집합 및 데이터 집합
GB/T 13443—1992 128×128 정보 교환용 한자 해서체 글꼴 집합 및 데이터 집합
GB/T 13444—1992 128×128 정보 교환용 한자 방성체 글꼴 집합 및 데이터 집합
GB/T 13445—1992 256×256 정보 교환용 한자 해서체 글꼴 집합 및 데이터 집합
GB/T 13446—1992 256×256 정보 교환용 한자 방성체 글꼴 집합 및 데이터 집합
GB/T 13844—1992 그래픽 정보 교환용 중국 한자 벡터 단선 송체 글꼴 집합 및 데이터 집합
GB/T 13845—1992 그래픽 정보 교환용 중국 한자 벡터 송체 글꼴 집합 및 데이터 집합
GB/T 13846—1992 그래픽 정보 교환용 중국 한자 벡터 방성체 글꼴 집합 및 데이터 집합
GB/T 13847—1992 그래픽 정보 교환용 중국 한자 벡터 해서체 글꼴 집합 및 데이터 집합
GB/T 13848—1992 그래픽 정보 교환용 중국 한자 벡터 흑체 글꼴 집합 및 데이터 집합

 같이 보기 
 궈뱌오 코드
 한중일 문자
 중국어 문자 인코딩
 유니코드
 Big5 대만과 홍콩에서 사용되는 표준
 GB 18030, GB/T 2312-1980을 대체
 GB/T 12345-1990, GB/T 2312-1980의 정체자 대응, GB18030으로 대체

 각주 

 내용주 

 외부 링크 
 ICU의 Converter Explorer에서 GB2312의 그래픽 보기
 유니코드에서 GB2312 또는 GBK 테이블로
 중국 문자 코드
 GBK 및 GB2312에서 GB18030으로의 진화
 중국 문자를 위한 GB2312 문자 집합
 정보 교환을 위한 코드화된 중국 그래픽 문자 집합 ISO-IR 58
 출력이 있는 6763개 기본 문자를 생성하는 C 코드
 China-Language.gov.cn의 GB2312-80 표준

분류:문자 집합
분류:중국어 문자 인코딩