Chinese Character Code for Information Interchange


The Chinese Character Code for Information Interchange or CCCII is a character set developed by the Chinese Character Analysis Group in Taiwan. It was first published in 1980, and significantly expanded in 1982 and 1987.
It is used mostly by library systems. It is one of the earliest established and most sophisticated encodings for Traditional Chinese. It is distinguished by its unique system for encoding simplified versions and other variants of its main set of hanzi characters.
A variant of an earlier version of CCCII is used by the Library of Congress as part of MARC-8, under the name East Asian Character Code, where it comprises part of MARC 21's JACKPHY support. However, EACC contains fewer characters than the most recent versions of CCCII.

Design

Byte ranges

CCCII is designed as an 94n set, as defined by ISO/IEC 2022. Each Chinese character is represented by a 3-byte code in which each byte is 7-bit, between 0x21 and 0x7E inclusive. Thus, the maximum number of Chinese characters representable in CCCII is 94×94×94 = 830584. In practice the number of characters encodable by CCCII would be less than this number, because variant characters are encoded in related ISO 2022 planes under CCCII, so most of the code points would have to be reserved for variants.
In practice, however, bytes outside of these ranges are sometimes used. The code 0x212320 is often used as an ideographic space. A CCCII specification used by libraries in Hong Kong uses codes starting with 0x2120 for punctuation and symbols. The first byte 0x7F is used by some variants to encode codes for some otherwise unavailable Unified Repertoire and Ordering or CJK Unified Ideographs Extension A hanzi, and this may include bytes outside of the 0x21–0x7E or even 0x20–0x7F range, e.g. 0x7F551C for U+551C, 0x7F5AA4 for U+5AA4 or 0x7F8EDA for U+8EDA.

Interaction with ISO 2022

CCCII/EACC is not registered in the International Registry of Coded Character Sets to be Used with Escape Sequences, and as such, does not have a standard designation escape for use with ISO 2022. MARC-8 assigns EACC the private-use -byte 0x31 in its implementation of ANSI X3.41.

Layers and variant characters

The 94 ISO 2022 planes are grouped into 16 layers of 6 planes each. Layer 1 contains both non-hanzi and hanzi characters, with the non-hanzi and most frequently used hanzi being placed in plane 1, and with the remaining five planes consisting of less common hanzi. Layer 2 contains Simplified Chinese characters, with their row and cell numbers being the same as their Traditional Chinese equivalents in layer 1. Layers 3 through 12 contain further variant forms, at row and cell numbers homologous to the first two layers.
The last four layers are used for other purposes. Specifically, layer 13 contains additional characters for Japanese language support, and layer 14 contains additional characters for Korean language support. Layer 15 is unused, while layer 16 is used for other characters.
This distinctive design has been criticised by Christian Wittern of the International Research Institute for Zen Buddhism at Hanazono University, who asserts that the relationship of character variants "is very complex and can not be expressed in a fixed, one-dimensional, hard-wired codetable". Ken Lunde describes it as "one of the most well thought-out character set standards from Taiwan", describing its structure as "to be truly admired", but concluding that OpenType variant form substitution can provide the same level of functionality.
CCCII defines roughly 53940 code points as of its 1987 edition, although a more recent draft from 1989 extends this to 75684 code points. EACC, the variant used by the Library of Congress, includes only a smaller set of 15686 characters.

Adoption

As of 1995, CCCII or EACC was used mostly in libraries in the United States, Hong Kong and Taiwan. Although CCCII promised pan-CJK coverage, its support was limited to specialised hardware; difficulty ascertaining when the root versus variant character should be used, exacerbated by a lack of firmly established reference glyphs, further limited its adoption, resulting in Big5 being more commonly used for Chinese in those territories outside of library use.
, EACC is still in extensive use for specialized bibliographic purposes. It was also an important precursor to Unicode. Unicode hanzi characters are referenced to their corresponding CCCII and EACC codes in the Unihan database, in the keys and. Mapping tables for hanzi, hangul, kana and punctuation between EACC and Unicode are available from the Library of Congress.

Punctuation, symbol, kana and jamo charts

Following are charts for punctuation, symbols, kana and Hangul jamo, showing the characters and giving possible Unicode mappings. Where possible, these are referenced against published mapping data.
Unicode mappings for Hangul syllables are omitted for brevity, but may also be obtained from the Library of Congress. CCCII hanzi number in the tens of thousands and are not shown below, but mappings to Unicode are available from the Unihan database and from elsewhere.

Character set 0x2120 (plane 1, row 0: Hong Kong punctuation)

Although CCCII is usually a 94n set, and therefore does not usually use codes starting with 0x2120, the following layout is used by a variant used by libraries in Hong Kong:

Character set 0x2121 (plane 1, row 1: reserved for controls)

No characters are assigned in plane 1 row 1, which is reserved for control codes.

Character set 0x2122 (plane 1, row 2: mathematical operators)

This row contains mathematical operators. EACC leaves this row empty. The following table is referenced against sources from Taiwan.
The following table is referenced against CCCII data provided by the Hong Kong Innovative Users Group, a group of libraries in Hong Kong, and hosted by the University of Hong Kong. It uses an entirely different layout in this row:

Character set 0x2123 (plane 1, row 3: Roman and punctuation)

This row includes punctuation, western Arabic numerals and Roman letters. Compare row 3 of Wansung code and of GB 2312.
Different variants variously encode the ideographic space at 0x212320, 0x212321, or 0x21635F. EACC includes only the hyphen-minus, parentheses and ideographic space in this set.

Character set 0x212A (plane 1, row 10: internal IME characters and geta mark)

In EACC, this row includes several Private Use Area mapped characters used internally to represent character components by the RLIN input method, which is used by the Library of Congress for non-Roman cataloging. These component characters should only be used internally by an IME and, if encountered elsewhere, may be replaced with the geta mark, which this row also includes at 0x212A46. This row is unassigned in CCCII, but the geta mark is also listed at that location in some mappings for CCCII.

Character set 0x212B (plane 1, row 11: punctuation)

This row contains various punctuation marks used in Chinese, in addition to other symbols. CCCII includes a set of 35 punctuation marks in this row. EACC includes only 13 characters in this row.

Character sets 0x212C–0x212E (plane 1, rows 12–14: radicals and ordinals)

These rows contain Chinese radicals, Roman numerals, celestial stems and terrestrial branches.

Character set 0x212F (plane 1, row 15: Chinese numerals and bopomofo)

This row includes Chinese numerals and bopomofo characters. EACC includes only the ideographic zero.

Character set 0x272B (plane 7, row 11: reference mark)

This row contains the reference mark.

Character set 0x272E–0x272F (plane 7, rows 14–15: alternative bopomofo)

A variant used by libraries in Hong Kong does not include bopomofo characters in plane 1 row 15, but includes them in a different layout in plane 7.

Character set 0x6921 (plane 73, row 1: Japanese punctuation)

This row is in plane 73, the first plane of layer 13, which contains characters included for Japanese language support. It contains punctuation. Compare row 1 of JIS X 0208, which this row tends to follow the layout of for the characters it includes.

Character set 0x6924 (plane 73, row 4: hiragana)

This row contains hiragana. Compare row 4 of JIS X 0208.

Character set 0x6925 (plane 73, row 5: katakana)

This row contains katakana. Compare row 5 of JIS X 0208, which this row corresponds to, besides the addition of the separate dakuten and handakuten.

Character set 0x6F24–0x6F25 (plane 79, rows 4–5: jamo)

These rows contains Korean jamo.

Character set 0x6F76 (plane 79, row 86: archaic Hangul)

This row contains several historic Hangul characters no longer in regular use. Several of these are mapped to the Private Use Area.

Character set 0x7B25 (plane 91, row 5: supplementary Katakana)

This row contains additional katakana used to write foreign phonemes.

Footnotes