Big5


Big-5 or Big5 is a Chinese character encoding method used in Taiwan, Hong Kong, and Macau for traditional Chinese characters.
The People's Republic of China, which uses simplified Chinese characters, uses the GB 18030 character set instead.
Big5 gets its name from the consortium of five companies in Taiwan that developed it.

Encoding

The original Big5 character set is sorted first by usage frequency, second by stroke count, lastly by Kangxi radical.
The original Big5 character set lacked many commonly used characters. To solve this problem, each vendor developed its own extension. The ETen extension became part of the current Big5 standard through popularity.
The structure of Big5 does not conform to the ISO 2022 standard, but rather bears a certain similarity to the encoding. It is a double-byte character set with the following structure:
First byte to
Second byte to, to

.
Standard assignments do not use the bytes through, nor, as either lead or trail bytes. Bytes through are used for both lead and trail bytes for double-byte codes. Bytes through are used as trail bytes following a lead byte, or for single-byte codes otherwise. If the second byte is not in either range, behavior is unspecified. Additionally, certain variants of the Big5 character set, for example the HKSCS, use an expanded range for the lead byte, including values in the to range, whereas others use reduced lead byte ranges.
The numerical value of individual Big5 codes are frequently given as a 4-digit hexadecimal number, which describes the two bytes that comprise the Big5 code as if the two bytes were a big endian representation of a 16-bit number. For example, the Big5 code for a full-width space, which are the bytes , is usually written as or just A140.
Strictly speaking, the Big5 encoding contains only DBCS characters. However, in practice, the Big5 codes are always used together with an unspecified, system-dependent single-byte character set , so that Big5-encoded text contains a mix of double-byte characters and single-byte characters. Bytes in the range to that are not part of a double-byte character are assumed to be single-byte characters.
The meaning of non-ASCII single bytes outside the permitted values that are not part of a double-byte character varies from system to system. In old MSDOS-based systems, they are likely to be displayed as 8-bit characters; in modern systems, they are likely to either give unpredictable results or generate an error.

A more detailed look at the organization

In the original Big5, the encoding is compartmentalized into different zones:
to Reserved for user-defined characters 造字
to "Graphical characters" 圖形碼
to Reserved, not for user-defined characters
to Frequently used characters 常用字
to Reserved for user-defined characters
to Less frequently used characters 次常用字
to Reserved for user-defined characters

The "graphical characters" actually comprise punctuation marks, partial punctuation marks, dingbats, foreign characters, and other special characters
In most vendor extensions, extended characters are placed in the various zones reserved for user-defined characters, each of which are normally regarded as associated with the preceding zone. For example, additional "graphical characters" would be expected to be placed in the – range, and additional logograms would be placed in either the – or the – range. Sometimes, this is not possible due to the large number of extended characters to be added;
for example, Cyrillic letters and Japanese kana have been placed in the zone associated with "frequently-used characters".

Duplicates

Big5 has encoded two duplicate characters: "兀" on 0xA461 and 0xC94A, "嗀" on 0xDCD1 and 0xDDFC.
Some encoding mapping also maps the three Suzhou numerals, "〸", "〹" and "〺", in the graphical section to ideograph characters instead of CJK Symbols and Punctuation.

What a Big5 code actually encodes

An individual Big5 code does not always represent a complete semantic unit. The Big5 codes of logograms are always logograms, but codes in the "graphical characters" section are not always complete "graphical characters". What Big5 encodes are particular graphical representations of characters or part of characters that happen to fit in the space taken by two monospaced ASCII characters. This is a property of CJK double-byte character sets, and is not a unique problem of Big5.
To illustrate this point, consider the Big5 code . To English speakers this looks like an ellipsis and the Unicode standard identifies it as such; however, in Chinese, the ellipsis consists of six dots that fit in the space of two Chinese characters, so in fact there is no Big5 code for the Chinese ellipsis, and the Big5 code just represents half of a Chinese ellipsis. It represents only half of an ellipsis because the whole ellipsis should take the space of two Chinese characters, and in many DBCS systems one DBCS character must take exactly the space of one Chinese character.
Characters encoded in Big5 do not always represent things that can be readily used in plain text files; an example is "citation mark", which is, when used, required to be typeset under the title of literary works. Another example is the Suzhou numerals, which is a form of scientific notation that requires the number to be laid out in a 2-D form consisting of at least two rows.

The Matching SBCS

In practice, Big5 cannot be used without a matching SBCS; this is mostly to do with a compatibility reason. However, as in the case of other CJK DBCS character sets, the SBCS to use has never been specified. Big5 has always been defined as a DBCS, though when used it must be paired with a suitable, unspecified SBCS and therefore used as what some people call a MBCS; nevertheless, Big5 by itself, as defined, is strictly a DBCS.
The SBCS to use being unspecified implies that the SBCS used can theoretically vary from system to system. Nowadays, ASCII is the only possible SBCS one would use. However, in old DOS-based systems, code page 437—with its extra special symbols in the control code area including position 127—was much more common. Yet, on a Macintosh system with the Chinese Language Kit, or on a Unix system running the cxterm terminal emulator, the SBCS paired with Big5 would not be code page 437.
Outside the valid range of Big5, the old DOS-based systems would routinely interpret things according to the SBCS that is paired with Big5 on that system. In such systems, characters 127 to 160, for example, were very likely not avoided because they would produce invalid Big5, but used because they would be valid characters in code page 437.
The modern characterization of Big5 as an MBCS consisting of the DBCS of Big5 plus the SBCS of ASCII is therefore historically incorrect and potentially flawed, as the choice of the matching SBCS was, and theoretically still is, quite independent of the flavour of Big5 being used.

History

The inability of ASCII to support large Chinese, Japanese and Korean character sets led to governments and industry to find creative solutions to enable their languages to be rendered on computers. A variety of ad hoc and usually proprietary input methods led to efforts to develop a standard system. As a result, Big5 encoding was defined by the Institute for Information Industry of Taiwan in 1984.
The name "Big5" is in recognition that the standard emerged from collaboration of five of Taiwan's largest IT firms:
Big5 was rapidly popularized in Taiwan and worldwide among Chinese who used the traditional Chinese character set through its adoption in several commercial software packages, notably the E-TEN Chinese DOS input system. The Republic of China government declared Big5 as their standard in mid-1980s since it was, by then, the de facto standard for using traditional Chinese on computers.

Extensions

The original Big-5 only include CJK logograms from the Charts of Standard Forms of Common National Characters and Less-Than-Common National Characters, but not letters from people's names, place names, dialects, chemistry, biology, and Japanese kana. As a result, many Big-5 supporting programs include extensions to address the problems.
The plethora of variations make UTF-8 a more consistent code page for modern use.

Vendor extensions

ETen extensions

In the ETen Chinese operating system, the following code points are added, to add support for some characters present in the IBM 5550's code page but absent from generic Big5:
  • 0xA3C00xA3E0: 33 control characters.
  • 0xC6A10xC875: circle 1–10, bracket 1–10, Roman numerals 1–9, CJK radical glyphs, Japanese hiragana, Japanese katakana, Cyrillic characters
  • 0xF9D60xF9FE: the characters '碁', '銹', '恒', '裏', '墻', '粧' and '嫺', followed by 34 additional semigraphic symbols.
In some versions of ETen, there are extra graphical symbols and simplified Chinese characters.

Microsoft code pages

created its own version of Big5 extension as code page 950 for use with Microsoft Windows, which supports the F9D6–F9FE code points from ETEN's extensions. In some versions of Windows, the euro currency symbol is mapped to Big-5 code point A3E1.
After installing Microsoft's on top of traditional Chinese Windows, applications using code page 950 automatically use a hidden code page 951 table. The table supports all code points in HKSCS-2001, except for the compatibility code points specified by the standard.