Several systems have been proposed for describing the internal structure of Chinese characters, including their strokes, components, and the stroke order, and the location of each in the character's ideal square. This information is useful for identifying variants of characters that are unified into one code point by Unicode and ISO/IEC 10646, as well as to provide an alternative form of representation for rare characters that do not yet have a standardized encoding in Unicode. Many aim to work for regular script, as well as to provide the character's internal structure which can be used for easier look-up of a character by indexing the character's internal make-up and cross-referencing among similar characters.
Character Description Language (CDL) is an XML-based declarative language co-created by Tom Bishop and Richard Cook for the Wenlin Institute. It defines characters by the arrangement of components, which are not required to reflect the semantic or etymological history of the character. In order for a component to fit into the allotted portion of the whole character's square, A set of fewer than 50 strokes allow one to construct approximately 1,000 components, which may in turn describe tens of thousands of characters.
See main article: Ideographic Description Characters (Unicode block). Chapter 12 of The Unicode Standard defines the "Ideographic Description Sequences" (IDS) syntax used to describe characters in featural terms, by arrangements of components with code points. Sixteen special characters in the range U+2FF0..U+2FFF act as prefix operators to combine other characters or sequences to form larger characters.
⿰ | U+2FF0 | left to right | |
⿱ | U+2FF1 | above to below | |
⿲ | U+2FF2 | left to middle and right | |
⿳ | U+2FF3 | above to middle and below | |
⿴ | U+2FF4 | full surround | |
⿵ | U+2FF5 | surround from above | |
⿶ | U+2FF6 | surround from below | |
⿷ | U+2FF7 | surround from left | |
| U+2FFC | surround from right | |
⿸ | U+2FF8 | surround from upper left | |
⿹ | U+2FF9 | surround from upper right | |
⿺ | U+2FFA | surround from lower left | |
| U+2FFD | surround from lower right | |
⿻ | U+2FFB | overlaid | |
| U+2FFE | horizontal reflection | |
| U+2FFF | rotation |
Two additional ideographic description characters are scattered in other Unicode blocks. is not officially an ideographic description character, but is sometimes used in ideographic description sequences.
〾 | U+303E | |||
| U+31EF | subtraction |
These sequences are useful in describing to the reader a character that is not directly printable, either because it is absent in a given font, or is absent from the Unicode standard altogether. For example, the sawndip character Zhuang; Chuang: [[File:Saw sawndip.svg|22px|link=|]] encoded in CJK Unified Ideographs Extension F as U+2DA21 Zhuang; Chuang: can be described as . Another use is for dictionary lookup purposes, as a rough input method for queries.
These sequences can be rendered either by keeping the individual characters separately or by parsing the Ideographic Description Sequence and drawing the ideograph so described. They do not, by themselves, provide unambiguous rendering for all characters. For instance, the sequence Undetermined: ⿱十一 represents both with the middle bar being narrower, and with the middle bar being wider.
Unicode's specification for these sequences is based on the characters and syntax of the earlier GBK encoding. Additional symbols are later encoded to fill in the missing combinations.
The IDSgrep free software package by Matthew Skala extends Unicode's IDS syntax to include additional features for dictionary lookup; it is capable of converting KanjiVG's database to its own extended IDS format, or of searching EIDS files generated by the related Tsukurimashou font family.