GB 18030
   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. It is the world's List of countries and dependencies by population, most populous country, with a Population of China, population exceeding 1.4 billion, slig ...
. 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 digital computers. The numerical values tha ...
of the
People's Republic of China China, officially the People's Republic of China (PRC), is a country in East Asia. It is the world's List of countries and dependencies by population, most populous country, with a Population of China, population exceeding 1.4 billion, slig ...
(PRC) superseding
GB2312 is a key official character set of the People's Republic of China, used for Simplified Chinese characters. GB2312 is the registered internet name for EUC-CN, which is its usual encoded form. ''GB'' refers to the Guobiao standards (国家标准), ...
. As a Unicode Transformation Format (i.e. an encoding of all
Unicode Unicode, formally The Unicode Standard,The formal version reference is is an information technology standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems. The standard, ...
code points), GB18030 supports both simplified and
traditional A tradition is a belief or behavior (folk custom) passed down within a group or society with symbolic meaning or special significance with origins in the past. A component of cultural expressions and folklore, common examples include holidays or ...
Chinese characters. It is also compatible with legacy encodings including GB2312, CP936, and GBK 1.0. In addition to the "GB18030 character encoding", this standard contains requirements about which scripts must be supported, font support, etc. As of 2022, in terms of font implementations, "only the Simplified Chinese fonts of the ''Noto Sans CJK'' (Google), ''Source Han Mono'' (Adobe), and ''Source Han Sans'' (Adobe) typeface families are already compliant with GB 18030-2022 Implementation Level 2 .''Microsoft YaHei'' (Microsoft), ''Noto Serif CJK'' (Google), ''PingFang'' (Apple), and ''Source Han Serif'' (Adobe) — at least the current versions as of this writing — 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."


History

The GB18030 character set is formally called "Chinese National Standard GB 18030-2005: Information Technology—Chinese coded character set". GB abbreviates Guójiā Biāozhǔn (国家标准), 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, formally The Unicode Standard,The formal version reference is is an information technology standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems. The standard, ...
, especially the appearance of
CJK Unified Ideographs The Chinese, Japanese and Korean (CJK) scripts share a common background, collectively known as CJK characters. In the process called Han unification, the common (shared) characters were identified and named CJK Unified Ideographs. As of Unicode ...
Extension B. Some characters used by
ethnic minorities in China Ethnic minorities in China are the non- Han population in the People's Republic of China (PRC). The PRC officially recognizes 55 ethnic minority groups within China in addition to the Han majority. As of 2010, the combined population of o ...
, such as Mongolian characters and Tibetan characters ( GB 16959-1997 and GB/T 20542-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 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.


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. In the process called Han unification, the common (shared) characters were identified and named CJK Unified Ideographs. As of Unicode ...
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 In character encoding terminology, a code point, codepoint or code position is a numerical value that maps to a specific character. Code points usually represent a single grapheme—usually a letter, digit, punctuation mark, or whitespace—but ...
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. 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 an 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). Therefore, they must either process the data as a variable-width format (as with
UTF-8 UTF-8 is a variable-length character encoding used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode'' (or ''Universal Coded Character Set'') ''Transformation Format 8-bit''. UTF-8 is capable of e ...
or UTF-16), which is the most common choice, or move to a larger fixed-width format (i.e. UTF-32). 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, known as Hangul, . Hangul may also be written as following South Korea's standard Romanization. ( ) in South Korea and Chosŏn'gŭl in North Korea, is the modern official writing system for the Korean language. The l ...
( Korean), Mongolian (including
Manchu The Manchus (; ) are a Tungusic East Asian ethnic group native to Manchuria in Northeast Asia. They are an officially recognized ethnic minority in China and the people from whom Manchuria derives its name. The Later Jin (1616–1636) an ...
,
Clear script Clear Script ( xal, , Тодо бичиг, , ''todo biçig''; mn, Тод бичиг, ''tod bichig'', , bxr, Тодо бэшэг, ''Todo besheg'' (), or just todo) is an alphabet created in 1648 by the Oirat Buddhist monk Zaya Pandita for t ...
, ''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 diale ...
, Uyghur/ Kazakh/
Kyrgyz Kyrgyz, Kirghiz or Kyrgyzstani may refer to: * Someone or something related to Kyrgyzstan *Kyrgyz people *Kyrgyz national games *Kyrgyz language *Kyrgyz culture *Kyrgyz cuisine *Yenisei Kirghiz *The Fuyü Gïrgïs language in Northeastern China ...
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 and CJK Unified Ideographs Extension C, D, E and F. Additional languages are also recognized by GB 18030-2022 such as part of
Arabic Arabic (, ' ; , ' or ) is a Semitic language spoken primarily across the Arab world.Semitic languages: an international handbook / edited by Stefan Weninger; in collaboration with Geoffrey Khan, Michael P. Streck, Janet C. E.Watson; Walter ...
, Tai Le, New Tai Lue, Tai Tham, Lisu, 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 '' Table of General Standard Chinese Characters'', and Implementation Level 3 requires all other specified regions in the standard.


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 ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because ...
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 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, formally The Unicode Standard,The formal version reference is is an information technology standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems. The standard, ...
'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 In character encoding terminology, a code point, codepoint or code position is a numerical value that maps to a specific character. Code points usually represent a single grapheme—usually a letter, digit, punctuation mark, or whitespace—but ...
. 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 and W3C 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

The encoding is supported on all current Windows, i.e. since Windows Vista as code page 54936. Windows 2000 (and then XP too) can support the GB18030 encoding if GB18030 Support Package is installed. 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 § Technical details for examples). GNU
glibc The GNU C Library, commonly known as glibc, is the GNU Project's implementation of the C standard library. Despite its name, it now also directly supports C++ (and, indirectly, other programming languages). It was started in the 1980s ...
'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 POSIX-compatible programming and runtime environment that runs natively on Microsoft Windows. Under Cygwin, source code designed for Unix-like operating systems may be compiled with minimal modification and executed. The Cygwin in ...
, 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."


Glyphs

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 Ming or Song is a category of typefaces used to display Chinese characters, which are used in the Chinese, Japanese and Korean languages. They are currently the most common style of type in print for Chinese and Japanese. Name The names ' ...
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. 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 Unicode 5.0.0 either.


See also

* Guobiao code *
CJK characters In internationalization, CJK characters is a collective term for the Chinese, Japanese, and Korean languages, all of which include Chinese characters and derivatives in their writing systems, sometimes paired with other scripts. Collectively, ...
*
Chinese character encoding In computing, Chinese character encodings can be used to represent text written in the CJK languages— Chinese, Japanese, Korean—and (rarely) obsolete Vietnamese, all of which use Chinese characters. Several general-purpose characte ...
* Comparison of Unicode encodings


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 Character sets 18030 Encodings of Asian languages Unicode Transformation Formats Chinese-language computing