A file of Chinese text opens cleanly on one computer but as a scatter of wrong characters on another. The cause is usually mismatched encodings: the two machines disagree on how to interpret the file's bytes. The three older Chinese encodings—GB2312, GBK, and Big5—all write the same character with different bytes, and none of them can write every character.
Take 中, "middle". In GB2312 and GBK it is the two bytes D6 D0. In Big5 it is A4 A4. In UTF-8 it is three bytes, E4 B8 AD. Read the GBK bytes as if they were Big5 and you get a different character entirely; read them as UTF-8 and you get an error. The character 国 ("country", in its simplified form) goes further: it has a GB2312 code, B9 FA, and no Big5 code at all, because Big5 was built for traditional characters and writes the same word as 國.
Our Chinese character encoding lookup shows all of these for any character you paste in. This guide explains what each encoding can hold, measures them against one large table of characters, and follows eight characters whose bytes changed meaning between two editions of the same standard.
What each encoding was built to hold
GB2312, published in mainland China in 1980, encodes 6,763 hanzi in simplified form, along with a few hundred symbols. It covers everyday text and very little beyond it: many names and rarer characters are missing.
Big5 was drawn up in Taiwan in 1984 as an industry standard, not a government one — Taiwan's national standard is a separate and much larger set, CNS 11643. Big5's two character areas hold 13,053 traditional characters.
GBK extended GB2312 in the 1990s. The Unicode Standard describes it as adding all of the 20,902 ideographs in Unicode 1.1 that GB2312 lacked, which brought traditional characters into a mainland encoding for the first time while keeping every GB2312 code unchanged. Commonly quoted totals — about 21,003 hanzi and 21,886 characters overall — include characters added in later revisions.
GB18030, the current mainland standard, keeps GBK's two-byte codes and adds a four-byte form, which lets it write every character in Unicode.
Measured against one table of 20,910 characters
Documented totals give the size of each set but not their overlap—which is what determines if text survives conversion. So each encoding was tested, one character at a time, against the 20,910 Chinese characters in the table behind our Cangjie lookup tool — a broad set that includes both simplified and traditional forms.
| Encoding | Characters it can write | Share of the table |
|---|---|---|
| GB2312 | 6,763 | 32% |
| Big5 (standard tables) | 13,061 | 62% |
| GBK (Microsoft code page 936) | 20,902 | 99.96% |
| GB18030, UTF-8 | 20,910 | 100% |
The GB2312 figure matches the documented 6,763 exactly, which is a useful check that the method counts what it should.
Our Big5 figure is eight more than the documented 13,053. Big5's character areas hold exactly 13,053 distinct characters, and our table contains 13,051 of them. The standard conversion tables also map ten characters from Big5's symbol area to Chinese character code points: nine old metric-unit characters such as 瓩 (kilowatt) and 糎 (centimetre), and 卄, a numeral for twenty. All ten are in our table, which is where the extra eight come from.
Which "Big5" you mean matters too. Over the same 20,910 characters, Microsoft's variant of Big5 (code page 950) writes 13,068, and Big5 with Hong Kong's extension writes 15,302.
The limited overlap between these sets is what causes conversion failures. Only 4,383 characters can be written in both GB2312 and Big5. Another 2,380 are GB2312-only — simplified forms such as 国 — and 8,678 are Big5-only. Converting a GB2312 file directly to Big5, without first mapping simplified characters to traditional ones, loses about a third of the character repertoire.
The Big5 gap is not a clean line between simplified and traditional, though. Characters such as 万 and 与, which serve as simplified forms on the mainland, do have Big5 codes, because they existed as characters in their own right before simplification.
Hong Kong's supplement
Big5 was not enough for Hong Kong, whose written Cantonese and personal names use characters Taiwan's industry set never included. The government's answer began as a supplement to Big5 and became the Hong Kong Supplementary Character Set. Its 2016 edition holds 5,033 characters, 4,591 of them Chinese characters, and is aligned with the international Unicode standard. A Hong Kong name might display correctly in UTF-8 but fail in plain Big5 because the supplement is not part of the base set, and software that knows only Big5 has nowhere to put the extra characters.
Eight characters, two editions, two answers
The GBK column in the table above is eight short of the full 20,910. The eight are 龴 龵 龶 龷 龸 龹 龺 龻. These are components for describing character structure, not words for everyday writing. Their history shows that the bytes for a character can depend on which edition of a standard your software follows.
When GBK was extended in 1995, these components were given two-byte codes in the range FE50–FEA0. Unicode had no code points for them yet, so they were mapped to Unicode's private use area, a block reserved for characters with no official place. Microsoft's code page 936, which is what most software means by "GBK", never included them at all.
Unicode then gave the components real code points, U+9FB4 to U+9FBB, in 2005. The 2005 edition of GB18030 kept the old two-byte codes pointing at the private-use stand-ins and gave the real code points four-byte codes instead. The 2022 edition swapped them back. A paper for the Unicode Technical Committee sets out the change, which affected eighteen characters and 36 mappings in total. Here is one of them.
| Bytes | Decoded under GB18030-2005 | Decoded under GB18030-2022 |
|---|---|---|
FE 59 | U+E81E, a private-use code point | U+9FB4, 龴 |
82 35 90 37 | U+9FB4, 龴 | U+E81E, a private-use code point |
Two decoders built to the 2005 edition were tried on FE 59, and both returned the private-use code point. A browser returns 龴: the web's encoding standard follows 2022 for these characters. A private-use code point has no agreed appearance, so a file written by one kind of software can show a blank box in the other. The other ten characters in the change are vertical punctuation marks, U+FE10 to U+FE19, which moved the same way.
Our own lookup tool made this mistake. Its tables had been generated from an implementation of the 2005 edition, so for these eighteen characters it printed the old four-byte codes and reported them as missing from GBK. It now gives the 2022 value, with the 2005 bytes alongside for anyone holding an older file.
Telling which encoding a file is in
When a file shows the wrong characters, the bytes of a common character usually give the encoding away. Open the file in anything that shows raw bytes and find a character you know should be there.
D6 D0for 中 means the GB family: GB2312, GBK or GB18030. Opening it as GB18030 is the safe choice, because GB18030 reads every GB2312 and GBK file correctly.A4 A4for 中 means Big5. If Hong Kong names or Cantonese characters appear as boxes, the file may need the Hong Kong extension.E4 B8 ADmeans UTF-8, and the fault is in whatever read it as something else.
For new text, this question is moot. Use UTF-8, which writes every character in all of these sets and gives the eight components just one code each.
Sources and method
The documented repertoires are from the standards as described in the Unicode Standard and in the Wikipedia articles on each encoding, which cite the standards. The Hong Kong figures are from the Hong Kong government's page on HKSCS. The GB18030-2022 change is from Peter Constable's paper for the Unicode Technical Committee, "Disruptive Changes in GB 18030-2022" (document L2/22-274), read in full, and from the web's encoding standard, whose published index maps FE 59 to U+9FB4.
Coverage was measured on 21 September 2026 by asking the encoding tables of a widely used programming language's standard library to write each of the 20,910 characters, one at a time, in each encoding. Those tables follow Microsoft's code pages for GBK and Big5 and the 2005 edition for GB18030 — which is how the eight missing components surfaced. The counts describe that table of characters and those implementations. A different character list, or an implementation built to a different edition, would give somewhat different numbers.