CJK (中日韓統合漢字)

中国語・日本語・韓国語で共通する漢字を Unicode で統合的に扱う体系。CJK Unified Ideographs。

CJK は Chinese (中国語)・Japanese (日本語)・Korean (韓国語) の頭文字で、これら 3 言語で共通する漢字体系を指します。Unicode では CJK Unified Ideographs として統合的にコードポイントが割り当てられており、基本多言語面 (BMP) の U+4E00 から U+9FFF に約 20,000 文字、拡張領域を含めると 90,000 文字以上が収録されています。

Han Unification (漢字統合) は CJK の核心的な設計方針です。中国の簡体字・繁体字、日本の漢字、韓国の漢字のうち、歴史的に同一の起源を持つ文字には同一のコードポイントが割り当てられます。たとえば「直」という字は日中韓で微妙に字形が異なりますが、Unicode では同じ U+76F4 です。フォントの選択によって字形が変わるため、HTML の lang 属性を正確に指定してブラウザに適切なフォントを選ばせることが重要です。Unicode 漢字統合の書籍で CJK の体系を学べます。

CJK 文字は全角幅で表示され、UTF-8 では 1 文字あたり 3 バイト、UTF-16 では 2 バイト (BMP 内) を消費します。同じ 100 文字のテキストでも、英語 (ASCII) なら 100 バイト、日本語なら 300 バイト (UTF-8) と、文字数とバイト数の乖離が大きくなります。データベースの容量設計やネットワーク帯域の見積もりでは、この差を考慮する必要があります。

CJK テキストの大きな特徴は、単語間にスペースがないことです。英語では空白が単語の区切りとして機能しますが、日本語や中国語ではそのような区切りがありません。そのため、検索エンジンのインデックス作成、テキストの改行処理、単語数カウントには形態素解析 (日本語の MeCab など) や N-gram 方式が必要になります。

Han Unification に対しては批判もあります。日本語の「骨」と中国語の「骨」は字形が異なるにもかかわらず同一コードポイントが割り当てられているため、同一文書内で日中の字形を使い分けるには CSS の font-family やフォントフィーチャーの制御が必要です。Unicode の IVS (Ideographic Variation Sequence) はこの問題を部分的に解決する仕組みです。

文字数カウントの観点では、CJK 文字は 1 文字が多くの情報を持つため、同じ内容を伝えるのに英語より少ない文字数で済みます。SNS の文字数制限では、CJK 言語のユーザーは英語ユーザーより多くの情報を 1 投稿に詰め込めるという利点があります。日本語テキスト処理の書籍で CJK 特有の課題と対策を習得できます。