HOME

TheInfoList



OR:

GB 18030 is a Chinese government standard, described as ''Information Technology — Chinese coded character set'' and defines the required language and character support necessary for software in
China China, officially the People's Republic of China (PRC), is a country in East Asia. With population of China, a population exceeding 1.4 billion, it is the list of countries by population (United Nations), second-most populous country after ...
. GB18030 is the registered Internet name for the official
character set Character encoding is the process of assigning numbers to graphical characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using computers. The numerical values that make up a c ...
of the
People's Republic of China China, officially the People's Republic of China (PRC), is a country in East Asia. With population of China, a population exceeding 1.4 billion, it is the list of countries by population (United Nations), second-most populous country after ...
(PRC) superseding GB2312. As a
Unicode Transformation Format Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 ch ...
(i.e. an encoding of all
Unicode Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
code points), GB18030 supports both simplified and
traditional Chinese characters Traditional Chinese characters are a standard set of Chinese character forms used to written Chinese, write Chinese languages. In Taiwan, the set of traditional characters is regulated by the Ministry of Education (Taiwan), Ministry of Educat ...
. It is also compatible with legacy encodings including GB/T 2312, CP936, and GBK 1.0. The
Unicode Consortium The Unicode Consortium (legally Unicode, Inc.) is a 501(c)(3) non-profit organization incorporated and based in Mountain View, California, U.S. Its primary purpose is to maintain and publish the Unicode Standard which was developed with the in ...
has warned implementers that the latest version of this Chinese standard, GB 18030-2022, introduces what they describe as "disruptive changes" from the previous version GB 18030-2005 "involving 33 different characters and 55 code positions". GB 18030-2022 was enforced from 1 August 2023. It has been implemented in ICU 73.2; and in Java 21, and
backport Backporting is the action of taking parts from a newer version of a software system or software component and porting them to an older version of the same software. It forms part of the maintenance step in a software development process, and it i ...
ed to older Java 8, 11, 17 (LTS releases) and 20.0.2. In addition to the encoding method, this standard contains requirements about which additional scripts and languages should be represented, and to whom this standard is applicable. This standard however does not define the official character forms for the Chinese characters; this is standardised in ''
List of Commonly Used Standard Chinese Characters The ''List of Commonly Used Standard Chinese Characters'' is the current standard list of 8,105 Chinese characters published by the government of the People's Republic of China and promulgated in June 2013. The project began in 2001, origina ...
''.


History

The GB18030 character set is formally called "Chinese National Standard GB 18030-2005: Information Technology—Chinese coded character set". GB abbreviates (), which means ''national standard'' in Chinese. The standard was published by the China Standard Press, Beijing, 8 November 2005. Only a portion of the standard is mandatory. Since 1 May 2006, support for the mandatory subset is officially required for all software products sold in the PRC. An older version of the standard, known as "Chinese National Standard GB 18030-2000: Information Technology—Chinese ideograms coded character set for information interchange—Extension for the basic set", was published on March 17, 2000. The encoding scheme stays the same in the new version, and the only difference in GB-to-Unicode mapping is that GB 18030-2000 mapped the character (ḿ) to a private use code point U+E7C7, and character (without specifying any glyph) to U+1E3F (ḿ), whereas GB 18030-2005 swaps these two mapping assignments. More code points are now associated with characters due to update of
Unicode Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
, especially the appearance of
CJK Unified Ideographs The Chinese, Japanese and Korean (CJK) scripts share a common background, collectively known as CJK characters. During the process called Han unification, the common (shared) characters were identified and named CJK Unified Ideographs. As of Uni ...
Extension B. Some characters used by
ethnic minorities in China Ethnic minorities in China are the non-Han Chinese, Han population in the China, People's Republic of China (PRC). The PRC officially recognizes 55 ethnic minority groups within China in addition to the Han majority. , the combined population ...
, such as Mongolian characters and Tibetan characters (
GB 16959 GB, or Gb may refer to: Places * United Kingdom (ISO 3166-1 code), a sovereign country situated off the north-western coast of continental Europe ** Great Britain, an island situated off the north-western coast of continental Europe ** Kingdom ...
-1997 and
GB/T 20542 The National Standards of the People's Republic of China (), coded as , are the standards issued by the Standardization Administration of China under the authorization of Article 10 of the Standardization Law of the People's Republic of China. A ...
-2006), have been added as well, which accounts for the renaming of the standard. Compared with its ancestors, GB 18030's mapping to Unicode has been modified for the 81 characters that were provisionally assigned a Unicode
Private Use Area In Unicode, a Private Use Area (PUA) is a range of code points that, by definition, will not be assigned characters by the standard. Three Private Use Areas are defined: one in the Basic Multilingual Plane (), and one each in, and nearly covering ...
code point (U+E000–F8FF) in GBK 1.0 and that have later been encoded in Unicode. This is specified in Appendix E of GB 18030. There are 24 characters in GB 18030-2005 that are still mapped to Unicode PUA. In the GB 18030-2022 update, the requirements for characters to be mapped to PUA has been lifted completely and all characters should be mapped to their standard Unicode codepoints. Of these, 18 mappings were updated by position-swapping similar to what happened between GBK and GB 18030. The remaining six kept the two-byte PUA mappings, so that a change to the 4-byte sequence is needed to follow the non-PUA preference.


As a national standard

The first version of GB 18030, designated GB 18030-2000 ''Information Technology—Chinese coded character set for information interchange — Extension for the basic set'', consists of 1-byte and 2-byte encodings, together with 4-byte encoding for
CJK Unified Ideographs The Chinese, Japanese and Korean (CJK) scripts share a common background, collectively known as CJK characters. During the process called Han unification, the common (shared) characters were identified and named CJK Unified Ideographs. As of Uni ...
Extension A matching those in Unicode 3.0. The corresponding Unicode code points of this subset, including provisional private assignments, lie entirely in the BMP. These parts are fully mandatory in GB 18030-2000. Most major computer companies had already standardized on some version of Unicode as the primary format for use in their binary formats and OS calls. However, they mostly had only supported
code points A code point, codepoint or code position is a particular position in a table, where the position has been assigned a meaning. The table may be one dimensional (a column), two dimensional (like cells in a spreadsheet), three dimensional (sheets in ...
in the BMP originally defined in Unicode 1.0, which supported only 65,536 codepoints and was often encoded in 16 bits as
UCS-2 UTF-16 (16-bit Unicode Transformation Format) is a character encoding that supports all 1,112,064 valid code points of Unicode. The encoding is variable-length as code points are encoded with one or two ''code units''. UTF-16 arose from an earli ...
. This standard is basically an extension based on GBK with additional characters in CJK Unified Ideographs Extension A. The second version designated GB 18030-2005 ''Information Technology—Chinese coded character set'' has the same mandatory subset as GB 18030-2000 of 1-, 2- and 4-byte encodings. This version also includes the full CJK Unified Ideographs Extension B in the 4-byte encoding section which is outside the BMP as a suggestion support requirement. However, as the inclusion of CJK Unified Ideographs Extension B in a 4-byte region is required to be maintained during information processing, software can no longer get away with treating characters as 16-bit fixed width entities (
UCS-2 UTF-16 (16-bit Unicode Transformation Format) is a character encoding that supports all 1,112,064 valid code points of Unicode. The encoding is variable-length as code points are encoded with one or two ''code units''. UTF-16 arose from an earli ...
). Therefore, they must either process the data as a variable-width format (as with
UTF-8 UTF-8 is a character encoding standard used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode Transformation Format 8-bit''. Almost every webpage is transmitted as UTF-8. UTF-8 supports all 1,112,0 ...
or
UTF-16 UTF-16 (16-bit Unicode Transformation Format) is a character encoding that supports all 1,112,064 valid code points of Unicode. The encoding is variable-length as code points are encoded with one or two ''code units''. UTF-16 arose from an earli ...
), which is the most common choice, or move to a larger fixed-width format (i.e.
UTF-32 UTF-32 (32- bit Unicode Transformation Format), sometimes called UCS-4, is a fixed-length encoding used to encode Unicode code points that uses exactly 32 bits (four bytes) per code point (but a number of leading bits must be zero as there are far ...
). Microsoft made the change from UCS-2 to UTF-16 with Windows 2000. This version matches with Unicode 3.1, and also provided support for
Hangul The Korean alphabet is the modern writing system for the Korean language. In North Korea, the alphabet is known as (), and in South Korea, it is known as (). The letters for the five basic consonants reflect the shape of the speech organs ...
(
Korean Korean may refer to: People and culture * Koreans, people from the Korean peninsula or of Korean descent * Korean culture * Korean language **Korean alphabet, known as Hangul or Korean **Korean dialects **See also: North–South differences in t ...
),
Mongolian Mongolian may refer to: * Something of, from, or related to Mongolia, a country in Asia * Mongolian people, or Mongols * Bogd Khanate of Mongolia, the government of Mongolia, 1911–1919 and 1921–1924 * Mongolian language * Mongolian alphabet * ...
(including
Manchu The Manchus (; ) are a Tungusic peoples, Tungusic East Asian people, East Asian ethnic group native to Manchuria in Northeast Asia. They are an officially recognized Ethnic minorities in China, ethnic minority in China and the people from wh ...
, Clear script, ''Sibe hergen'', Galik), Tai Nuea,
Tibetan Tibetan may mean: * of, from, or related to Tibet * Tibetan people, an ethnic group * Tibetan language: ** Classical Tibetan, the classical language used also as a contemporary written standard ** Standard Tibetan, the most widely used spoken dial ...
,
Uyghur Uyghur may refer to: * Uyghurs, a Turkic ethnic group living in Eastern and Central Asia (West China) ** Uyghur language, a Turkic language spoken primarily by the Uyghurs *** Old Uyghur language, a different Turkic language spoken in the Uyghur K ...
/ Kazakh/ Kyrgyz and Yi. The third and latest version, GB 18030-2022 ''Information Technology—Chinese coded character set'', mandates the suggestion support part of CJK Unified Ideographs Extension B in GB 18030-2005, along with updates up to Unicode 11.0 including
Kangxi Radicals The ''Kangxi'' radicals (), also known as ''Zihui'' radicals, are a set of 214 radicals that were collated in the 18th-century '' Kangxi Dictionary'' to aid categorization of Chinese characters. They are primarily sorted by stroke count. They ...
and CJK Unified Ideographs
URO Uro or URO may refer to: * Aurochs, the predecessor of modern cattle * Uro Bonsai technique; see deadwood bonsai techniques * Uro, Delta, Nigeria * ''Uro'' (film), directed by Stefan Faldbakken * Uro (trucks), a Spanish truck manufacturer * '' ...
, Extension C, D, E and F. Additional languages are also recognized by GB 18030-2022 such as part of
Arabic Arabic (, , or , ) is a Central Semitic languages, Central Semitic language of the Afroasiatic languages, Afroasiatic language family spoken primarily in the Arab world. The International Organization for Standardization (ISO) assigns lang ...
, Tai Le, New Tai Lue,
Tai Tham Tai Tham script (''Dharma, Tham'' meaning "scripture") is an abugida writing system used mainly for a group of Southwestern Tai languages i.e., Northern Thai language, Northern Thai, Tai Lue language, Tai Lü, Khün language, Khün and Lao langu ...
,
Lisu Lisu may refer to: *Lisu people, an ethnic group of the mountainous regions of Yunnan (China), Arunachal Pradesh (India), northern Myanmar and Thailand *Lisu language, Tibeto-Burman language spoken by the Lisu people **Fraser script or Old Lisu A ...
, and
Miao Miao may refer to: * Miao people, linguistically and culturally related group of people, recognized as such by the government of the People's Republic of China * Miao script or Pollard script, writing system used for Miao languages * Miao (Unicode ...
. GB 18030-2022 also introduces three implementation levels, with the requirement of "all products using this standard should implements Implementation Level 1" that includes 66 new BMP characters in the 4-byte encoding region that were added between Unicode 3.1 and Unicode 11.0. Implementation Level 2 requires the support of ''
List of Commonly Used Standard Chinese Characters The ''List of Commonly Used Standard Chinese Characters'' is the current standard list of 8,105 Chinese characters published by the government of the People's Republic of China and promulgated in June 2013. The project began in 2001, origina ...
'', and Implementation Level 3 requires all other specified regions in the standard. From late 2022 to 2023, drafts of a further amendment are to be made to GB 18030-2022 available for public consultation. The current draft updates up to Unicode 15.1 on Ideographic Description Characters, CJK Unified Ideographs URO, Extension A, B, C, G, H and I. Originally, in late 2022, it would have placed 897 new sinographic characters in Plane 10 (
hexadecimal Hexadecimal (also known as base-16 or simply hex) is a Numeral system#Positional systems in detail, positional numeral system that represents numbers using a radix (base) of sixteen. Unlike the decimal system representing numbers using ten symbo ...
: 0A), a yet-untitled astral Unicode plane, for citizen real-name certification in China, but eventually the
repertoire Repertory or repertoire () is the list or set of works a person or company is accustomed to performing. Whether the English or French spelling is used has no bearing, but it was the French word, with an accent on the first e, , that first took ho ...
(reduced to 622 characters after expert review) was fast-tracked into Unicode 15.1 in September 2023, as the CJK Unified Ideographs Extension I block. Following this, the amendment draft was modified to use the Extension I code points.


Mapping

GB 18030 defines a one (ASCII), two (extended GBK), or four-byte (UTF) encoding. The two-byte codes are defined in a lookup table, while the four-byte codes are defined sequentially (hence algorithmically) to fill otherwise unencoded parts in UCS. GB 18030 inherits the bad aspects of GBK, most notably needing special code to safely find ASCII characters in a GB18030 sequence. The one- and two-byte code points are essentially GBK with the euro sign, PUA mappings for unassigned/user-defined points, and vertical punctuations. The four byte scheme can be thought of as consisting of two units, each of two bytes. Each unit has a similar format to a GBK two byte character but with a range of values for the second byte of 0x30–0x39 (the
ASCII ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
codes for decimal digits). The first byte has the range 0x81 to 0xFE, as before. This means that a string-search routine that is safe for GBK should also be reasonably safe for GB18030 (in much the same way that a basic
byte-oriented Byte-oriented framing protocol is "a communications protocol in which full bytes are used as control codes. Also known as character-oriented protocol." For example UART communication is byte-oriented. The term "character-oriented" is deprecated, ...
search routine is reasonably safe for EUC). This gives a total of 1,587,600 (126×10×126×10) possible 4-byte sequences, which is easily sufficient to cover
Unicode Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
's 1,112,064 (17×65536 − 2048 surrogates) assigned, reserved, and noncharacter code points. Unfortunately, to further complicate matters there are no simple rules to translate between a 4-byte sequence and its corresponding
code point A code point, codepoint or code position is a particular position in a Table (database), table, where the position has been assigned a meaning. The table may be one dimensional (a column), two dimensional (like cells in a spreadsheet), three dime ...
. Instead, codes are allocated sequentially (with the first byte containing the most significant part and the last the least significant part) only to Unicode code points that are not mapped in any other manner. For example: 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 An offset table is used in the
WHATWG The Web Hypertext Application Technology Working Group (WHATWG) is a community of people interested in evolving HTML and related technologies. The WHATWG was founded by individuals from Apple Inc., the Mozilla Foundation and Opera Software, ...
and
W3C The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working together in ...
version of GB 18030 to efficiently translate code points. ICU and glibc use similar range definitions to avoid wasting space on large sequential blocks.


Support


Encoding

GB18030 has been supported on Windows since the release of
Windows 95 Windows 95 is a consumer-oriented operating system developed by Microsoft and the first of its Windows 9x family of operating systems, released to manufacturing on July 14, 1995, and generally to retail on August 24, 1995. Windows 95 merged ...
, as code page 54936. Windows 2000 and XP offer a GB18030 Support Package. The open source PostgreSQL database supports GB18030 through its full support for UTF-8, i.e. by converting it to and from UTF-8. Similarly Microsoft SQL Server supports GB18030 by conversion to and from UTF-16. More specifically, supporting the GB18030 encoding on Windows means that Code Page 54936 is supported by MultiByteToWideChar and WideCharToMultiByte. Due to the backward compatibility of the mapping, many files in GB18030 can be actually opened successfully as the legacy Code Page 936, that is GBK, even if the Code Page 54936 is not supported. However, that is only true if the file in question contains only GBK characters. Loading will fail or cause corrupted result if the file contains characters that do not exist in GBK (see for examples). GNU
glibc The GNU C Library, commonly known as glibc, is the GNU Project implementation of the C standard library. It provides a wrapper around the system calls of the Linux kernel and other kernels for application use. Despite its name, it now also dir ...
's gconv, the character codec library used on most Linux distributions, supports GB 18030-2000 since 2.2, and GB 18030-2005 since 2.14; glibc notably includes non-PUA mappings for GB 18030-2005 in order to achieve round-trip conversion. GNU libiconv, an alternative
iconv In Unix and Unix-like operating systems, iconv (an abbreviation of internationalization conversion) is a command-line program and a standardized application programming interface (API) used to convert between different character encodings. "It ...
implementation frequently used on non-glibc UNIX-like environments like
Cygwin Cygwin ( ) is a free and open-source Unix-like environment and command-line interface (CLI) for Microsoft Windows. The project also provides a software repository containing open-source packages. Cygwin allows source code for Unix-like operati ...
, supports GB 18030 since version 1.4. As of 2022, "supporting non-Chinese scripts continues to be optional" (presumably for display/font support only; and in China, since the encoding is a full UTF). The standard is known to support English/ASCII and the "following non-Chinese scripts are recognized by GB 18030-2022: Arabic, Tibetan, Mongolian, Tai Le, New Tai Lue, Tai Tham, Yi, Lisu, Hangul (Korean), and Miao."


Fonts

The GB18030 Support Package for Windows contains SimSun18030.ttc, a TrueType font collection file which combines two Chinese fonts, SimSun-18030 and NSimSun-18030. The SimSun 18030 font includes all the characters in Unicode 2.1 plus new characters found in the Unicode CJK Unified Ideographs Extension A block although, despite its name, it does not contain glyphs for all characters encoded by GB 18030, as all (about a million) Unicode code points up to U+10FFFF can be encoded as GB 18030. GB 18030 compliance certification only requires correct handling and recognition of glyphs in the mandatory (two-byte, and CJK Ext. A) Chinese part.Alt URL
/ref> Nevertheless, the requirement of PUA characters in the standard have hampered this implementation.
Microsoft YaHei Microsoft YaHei () is a sans-serif East Asian gothic typeface, gothic typeface created by Founder Electronics and Monotype Corporation under commission from Microsoft. Hinting for the font was undertaken by Monotype Imaging. The CJK ideographic cha ...
and DengXian provided by Microsoft are updated in 2023 to match GB 18030-2022 implementation level 2, and SimSun is updated to match implementation level 3.
Source Han Sans Source Han Sans is a sans-serif East Asian gothic typeface, gothic typeface family created by Adobe Inc., Adobe and Google. It is also released by Google under the Noto fonts project as Noto Sans CJK. The family includes seven weights, and suppo ...
(and its counterpart Noto Sans CJK) are already compliant with GB 18030-2022 implementation level 2 when the standard update for GB 18030 is announced .
Source Han Serif Source Han Serif (also known as Noto Serif CJK) is a serif Ming (typefaces), Song/Ming typeface created by Adobe Systems, Adobe and Google. Design Latin-script letters and numerals are from the Source Serif font. Changzhou SinoType Co., Ltd., ...
(and its counterpart Noto Serif CJK) however is not compliant at the time, and an update is provided to ensure the font is compliant to implementation level 2. Similarly Microsoft YaHei and PingFang (Apple) require a small number of URO additions that are associated with implementation level 1 in order to become compliant with GB 18030-2022 implementation level 2. Other CJK font families like HAN NOM and Hanazono Mincho provide wider coverage for Unicode CJK Extension blocks than SimSun-18030 or even SimSun (Founder Extended), but they don't support all code points defined in GB 18030.


See also

* Guobiao code *
CJK characters In internationalization, CJK characters is a collective term for graphemes used in the Chinese, Japanese, and Korean writing systems, which each include Chinese characters. It can also go by CJKV to include Chữ Nôm, the Chinese-origin lo ...
*
Chinese character encoding In computing, Chinese character encodings can be used to represent text written in the CJK characters, CJK languages—Chinese language, Chinese, Japanese language, Japanese, Korean language, Korean—and (rarely) obsolete Chữ Nôm, Vietnamese, ...
*
Comparison of Unicode encodings This article compares Unicode encodings in two types of environments: 8-bit clean environments, and environments that forbid the use of byte values with the high bit set. Originally, such prohibitions allowed for links that used only seven data ...


Notes


References


External links


IANA Charset Registration for GB18030
*

(Sun/Internet Archive) *ICU data

(IBM DeveloperWorks)
Authoritative mapping table between GB18030-2000 and Unicode

ICU Converter Explorer: GB18030
*Unicode charts
Unicode CJK Unified Ideographs Extension A
(PDF, 1.5 MB)
Unicode CJK Unified Ideographs Extension B
(PDF, 13 MB)
GB18030 Support Package for Windows 2000/XP, including Chinese, Tibetan, Yi, Mongolian and Thai font by Microsoft
(Internet Archive)
SIL's freeware fonts, editors and documentation
{{DEFAULTSORT:Gb 18030 18030 Unicode Transformation Formats Chinese character encodings