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 11643は
Unicodeと包摂規準が大きく異なるため、
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統合漢字が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に含まれないCJK互換
漢字の一覧は、資料をご参照ください。
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には、同じ形でも複数の読みを持つ268文字が重複して符号化されており、それらは
Unicodeでは互換
漢字として収録されました。このうち、208文字は
漢字語の先頭に現れる
漢字の特別な読み方(頭音法則)に対応します。例えば、
盧武鉉元大統領の「盧」は、語頭以外では「ロ」と発音しますが、語頭では「ノ」と発音します。以下に
KS X 1001の互換
漢字の一覧を示します。
Unicode関連のドキュメントには、このブロックの特定の文字を定義する目的とプロセスが記録されています。
まとめ
CJK互換
漢字は、
Unicodeの複雑な歴史と
文字コードの
互換性維持のために必要となった特殊な文字群です。これらの文字を理解することは、
Unicodeの仕組みを深く理解する上で重要です。
詳細については、参考資料および関連項目をご参照ください。