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 (predating the establishment of Big5 in 1984 and CNS 11643 in 1986). It is distinguished by its unique system for encoding simplified versions and other variants of its main set of hanzi characters.

Chinese Character Code for Information Interchange

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 (EACC, ANSI/NISO Z39.64), where it comprises part of MARC 21's JACKPHY support. However, EACC contains fewer characters than the most recent versions of CCCII. Work at Apple based on Research Libraries Group's CJK Thesaurus, which was used to maintain EACC, was one of the direct predecessors of Unicode's Unihan set.

Chinese Character Code for Information Interchange

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.

Chinese Character Code for Information Interchange

In practice, however, bytes outside of these ranges are sometimes used. The code 0x212320 is used by some implementations 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 (e.g. 0x7F3449 for U+3449 or 0x7F796E for U+796E; notice how the continuation bytes match the UCS-2BE code), 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 (ISO 2022).

Layers and variant characters

The 94 ISO 2022 planes are grouped into 16 layers of 6 planes each (except for layer 16, which contains the four planes 91–94). 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 (kana and Japanese kokuji), and layer 14 contains additional characters for Korean language support (hangul). Layer 15 is unused (reserved), while layer 16 is used for other characters.

This distinctive design has been criticized 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 (comprising 44167 unique characters and 31517 variants). EACC, the variant used by the Library of Congress, includes only a smaller set of 15686 characters.