cjkvi-ids instead (see ids.txt)Note: This repo is unmaintained. For better data in a standard format that is actively maintained, I strongly recommend using
CJK Decomposition Data
The CJK Decomposition Data File is a graphical analysis of the approx 75,000 Chinese/Japanese characters in Unicode.
The data comprises the 36 strokes (
U+31C0..U+31E3), the 115 radicals
U+2E9A), the 20,924 unified characters
U+4E00..U+9FBB), the 12 unique characters from the compatibility
U+F900..U+FAD9), the 6,582 extension A characters
U+3400..U+4DB5), the 42,711 extension B characters
U+20000..U+2A6D6), the 4,149 extension C characters
U+2A700..U+2B734), and the 222 extension D characters
Each record has 3 fields, viz, the character being defined, the type of decomposition, and a list of zero or more constituent components, like so:
The character being defined and the constituent components are either a Unihan token, in the basic or a supplemental plane, or a 5-digit number representing an intermediate decomposition not in Unicode. There are approx 10,000 such intermediate decompositions.
If you need a font, you can use the Hanazono font.
Only pictorial configurations are used, not semantic ones. Where characters have typeface differences I've used the one provided by the Mainland Chinese contribution to Unicode. When there's more than one possible configuration, I've selected one only.
The possible configurations and their meanings are:
|Code regex||Meaning||Number of possible constituents|
||modified in some way, e.g.
||second constituent contained within first in some way, e.g.
||second between first moving across or downwards||2|
||components locked together||2|
||first component surrounds second, e.g.
||repeats and/or reflects in some way, e.g.
r codes may be followed by
/o, to show whether the join touches, molds, snaps together, or
Some more work needs to be done, including reducing the quantity of intermediate components by removing duplicates, lowering the number of components in many sequences, reanalysis of decomposition configurations, and of course quality checking and corrections.