CJK互換漢字

CJK互換漢字とは



CJK互換漢字(シージェーケーごかんかんじ、英語: CJK Compatibility Ideographs)は、Unicodeにおける特殊な文字群です。本来、CJK統合漢字として統合されるべき文字が、既存の文字コードとの互換性を維持するために、Unicodeに収録されました。これらの文字は、特定の文字コード体系との間で往復変換の必要性がある場合や、重複収録による問題を解決するために導入されました。

CJK互換漢字の内訳



CJK互換漢字は、文字コード順ではなく、登録された順に紹介します。

U+F900 - U+FA0B



この範囲は、韓国の文字コード規格であるKS X 1001(旧KS C 5601)に含まれる重複漢字との互換性を保証するために収録されました。KS X 1001では、漢字を韓国語の辞書順に配列していますが、一部の漢字には複数の読みが存在します。同じ形でも複数の読みを持つ漢字は分離して収録されており、これらはUnicodeの統合漢字に統合されました。しかし、往復変換を保証する必要性から、これらの漢字は互換漢字として残されました。

この範囲の漢字のうち、U+F91D(欄)、U+F928(廊)、U+F929(朗)、U+F936(虜)、U+F970(殺)、U+F9D0(類)、U+F9DC(隆)は、IBM拡張漢字JIS X 0213とも共有されています。

U+FA0C - U+FA0D



この範囲は、台湾文字コードBig5に誤って重複して収録された2文字に対応する漢字です。

U+FA0E - U+FA2D



この範囲は、IBM拡張漢字のうち、CJK統合漢字のブロックに収録されなかったものです。これらの漢字は、カナダからの提案としてISO/IEC 10646|ISO_IEC 10646に収録されたため、「カナダ漢字」と呼ばれることがあります。この範囲の漢字のうち12文字は、CJK統合漢字ブロック内に同一とみなせる文字が存在しないため、実際にはCJK統合漢字とされています。

例えば、U+FA11(﨑)はU+5D0E(崎)、U+FA14(﨔)はU+6B05(欅)とU+6989(榉)、U+FA1F(﨟)はU+81C8(臈)にそれぞれ異体字がありますが、字体差が大きいとみなされ統合されていません。逆に、U+FA20(蘒)はU+8612(蘒)と字体差が大きいにもかかわらず統合されています。また、U+FA23は後にCJK統合漢字拡張Bブロックに重複登録されました。

U+2F800 - U+2FA1D



この範囲は、台湾文字コード規格CNS 11643との互換性を確保するために収録されました。CNS 11643Unicodeと包摂規準が大きく異なるため、Unicodeでは統合される漢字が多数別々に収録されています。この範囲の文字は、Unicode 3.1で追加され、数が多いためBMP外に新たなブロックを作成して収録されました。

U+FA30 - U+FA6A



この範囲は、日本の文字コード規格JIS X 0213において人名許容・康煕別掲と呼ばれる漢字との互換性を確保するために収録されました。これらは当初、JIS X 0208で包摂されていましたが、Unicodeでも他国の規格に含まれていたものを除いて統合されていました。

U+FA70 - U+FAD9



この範囲は、北朝鮮の文字コード規格KPS 9566およびKPS 10721に収録されている漢字との互換性を確保するために収録されたものです。Unicode 4.1で追加されました。

U+FA6B - U+FA6D



この範囲は、日本のデータ放送規格ARIB STD-B24で使われる文字コードに収録されている独自の漢字ARIB外字)のうち、既存の漢字に包摂されると考えられるものです。Unicode 5.2で追加されました。

U+FA2E - U+FA2F



この範囲は、U+F900 - U+FA0Bで定義されたうち2字(U+F92CおよびU+F9B8)に誤りがあり、それを修正するためにUnicode 6.1で収録されました。

コード順とCJK統合漢字



CJK互換漢字ブロックには、CJK統合漢字が12文字含まれています。また、CJK互換漢字ブロックには定義に誤りがあり、削除・再定義された文字も存在します。

日本語処理における問題点



CJK互換漢字は、その名前にもかかわらずCJK統合漢字と互換等価ではなく正準等価であるため、区別されることを期待してはなりません。正規化を行うとCJK統合漢字に分解されてしまうため、日本の人名処理などで必要とされる一部の人名用漢字の区別が保証されません。

一部にはCJK互換漢字の等価性を互換等価に変えるべきという主張がありますが、UnicodeではJIS X 0213用の互換漢字の一部は既存のKS X 1001互換文字用の領域に収録されているため、日本語だけの都合で等価性を変更することはできません。また、Unicodeには正規化の安定性の原則があり、等価性の変更は現実的ではありません。

一方、濁点半濁点を合成済みの仮名文字と分解した文字の組み合わせを同一視する需要があるため、正規化を行わなければ済む問題でもありません。

Appleは、CJK互換漢字を正規化から除外した新しい正規化形式を提案しましたが、否決されました。そのため、AppleはCJK互換漢字を含む一部の文字が分解されない独自の正規化形式を導入しています。

Adobeは、日本語組版処理に必要な字体の区別を維持するため、Adobe-Japan1-6の異体字集合をUnicode漢字字形データベースに登録しました。また、Unicode 6.3では、互換漢字用の異体字セレクタが登録されました。これにより、字形だけでなく、KS X 1001の読みの違いやBig5の誤った重複収録に対応する互換漢字も登録されています。

JIS X 0213用の互換漢字一覧



JIS X 0213用の互換漢字の一覧は、資料をご参照ください。

日本文字(JIS X 0213以外)の互換漢字一覧



JIS X 0213に含まれないCJK互換漢字の一覧は、資料をご参照ください。

Adobe-Japan1グリフの互換漢字



Adobe-Japan1文字コレクションには、UnicodeのCJK互換漢字にマッピングされているグリフがあります。JIS X 0213、IBM拡張漢字ARIB外字に含まれないものがあります。

例えば、漣(U+6F23)・煉(U+7149)・溺(U+6EBA)は、JIS X 0208では拡張新字体が示されていましたが、2000年に表外漢字字体表で康熙字典体で示され、2004年のJIS X 0213改正で例示字形が変更されました。結果として、JIS2004字形に準拠したフォントでは、これらの互換漢字と正規化後のグリフが一致します。

CJK互換漢字ブロックにある﨑(U+FA11)については、異体字の﨑󠄁もマッピングされています。

KS X 1001由来の互換漢字一覧



KS X 1001には、同じ形でも複数の読みを持つ268文字が重複して符号化されており、それらはUnicodeでは互換漢字として収録されました。このうち、208文字は漢字語の先頭に現れる漢字の特別な読み方(頭音法則)に対応します。例えば、盧武鉉元大統領の「盧」は、語頭以外では「ロ」と発音しますが、語頭では「ノ」と発音します。以下にKS X 1001の互換漢字の一覧を示します。

文字コード表と履歴



Unicode関連のドキュメントには、このブロックの特定の文字を定義する目的とプロセスが記録されています。

まとめ



CJK互換漢字は、Unicodeの複雑な歴史と文字コード互換性維持のために必要となった特殊な文字群です。これらの文字を理解することは、Unicodeの仕組みを深く理解する上で重要です。

詳細については、参考資料および関連項目をご参照ください。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。