Unihan

Unihan（Unicode Han Database：ユニコード漢字データベース）は、ユニコードコンソーシアムで定期的に更新されている漢字データベースである。Unihanの内容の中には、Unicodeの投稿者がCJK文字プロパティを保存する。 Unihanの内容、スキーマなどはUnicode標準附属書UAX#38で説明されている。 漢字統合するかどうかの意思決定の手順は「付属書S」のISO/IEC 10646:2010で説明されている。 Unihanは漢字がもつ表意を定義するものではない。形状は「XはYと同等」と説明している。例えば「U+4E00 一 」は、GB/T 2312-1980の0x523B、CNS 11643の0x14421、JIS X 0208の0x306Cなどと同等と定義している。 CJK文字は、原則として登録される毎に部首画数順で配列されている。但し一部に乱れが存在している上、追加が相次いだために検索が困難になってきており、Unihanデータベースでは割り当てられたUnicode値と部首番号、部首別画数から導出される値をソートキーとして規格化している。 漢字には「形・音・義」の3つの側面があるといわれる。CJK統合漢字は中国・台湾・日本・韓国の漢字コード表の漢字のうち由来が同一であり、かつ字形が同一または類似するものを、一定の基準のもとに統合することにした。統合規準については、ISO/IEC 10646の補遺Sに詳述されている。由来が同一であっても国・地域によって漢字の意味や発音が大きく変化しているため、現代の各国間でも音・義が同一であるとは限らない。このため統合漢字では日本の「机」（つくえ）と中国の「机」（機の簡化字）が統一されたり、現代の日本語と中国語で大きく意味が異なる「届」等の漢字に同一の符号が割り当てられている（漢字統合）。 統合漢字は、字形が同一でなくても、「同じ抽象字形を持つ漢字」も統合することにしている。同一とされる抽象字形には、「為」と「爲」や、「単」と「单」などがある。その結果、「僧」と「僧」、「廐」と「廐」、「埩」と「埩」なども同一符号化され、符号のみでは字形や画数を明確に定めることが困難である。 中国・台湾・日本・韓国の国内規格とUCSとの間でラウンドトリップ変換（往復変換）を実現するため、統合漢字の最初のURO 20,902文字に限り、中国・台湾・日本・韓国の国内規格で区別されている漢字は統合漢字でも必ず分離することとした。たとえばJISの間違いにより別符号化されていた「飲」と「飮」は統合漢字でもやはり分離され（他のすべての「飠」と「𩙿」の違いしかない漢字は統合されている）、また「兌」と「兑」は、「娧」や「帨」等の漢字では統合される一方、「悅」と「悦」や、「挩」と「捝」などは台湾のCNS規格（中国語版）CNS 11643では区別しているとの理由により別符号化されている。 CJK統合漢字は上記のような「統合原則」および「原規格分離規則」を定めたにもかかわらず、これらに適合しない統合・分離の例を幾つか抱えている。 一例を挙げると、「戋」と「㦮」は統合原則では統合されることになっている。具体的にはたとえば、「残」と「残」や、「浅」と「浅」、「践」と「践」は統合漢字では同一符号である。しかしなぜか「桟」と「栈」は、中国・台湾・日本・韓国のいずれの国内規格でも区別しているものはないのに、統合漢字ではU+685FとU+6808に分離されている。 UROの制定作業の直前に、台湾がCNS 11643:1992規格として、康煕字典や大漢和辞典の漢字を含む4万7千文字の漢字コードを制定した。この漢字集合は、多数の異体字を規定しているが、その異体字の中には統合漢字では統合されているものも多く含まれていた。そのため、CNS規格はUnicodeとの間でラウンドトリップ変換が不可能となった。 一例として、CNS 11643:1992では従来の「直」（1面4E7E）に加えて、「直」（6面2D45）を新たに規定した。しかし統合漢字では両方の字形は76F4として符号化された（「直」は日本字形、「直」は中国・台湾字形）。その結果、原規格分離まで行って維持しようとしたラウンドトリップ変換が、CNS 11643:1992との間では不可能となった（この問題は2001年のISO/IEC 10646-2:2001の制定によりようやく解消された）。 1991年7月にCJK-JRGは、CJK統合漢字の対象となる漢字は1991年の時点における各国・各地域で公式に制定された規格のみに限定することで合意した。これにより、日本からはJIS X 0208:1990、JIS X 0212:1990、韓国からはKS C 5601、KS C 5657、台湾からはCNS 11643:1987、そして中国からはGB 2312、GB 7589、GB 7590、GB/T 12345、GB 8565で規定されている漢字が統合の対象となった（実際にはGB 7589、GB 7590そのものではなく、それらに記載されている字体の繁体字が統合の対象として提出された）。しかし中国は、この合意では入れることのできない、現代漢語通用字表やCCITT Chinese Primary Setの漢字、標準電碼本の漢字をCJK統合漢字に含めようとし、上記の規格に含まれない多数の漢字を既存の規格の空き符号位置に混入させて、統合対象の漢字として提出した。その結果、一見由来の不明な多数の幽霊漢字が、CJK統合漢字に紛れ込むこととなった。 CJK統合漢字の中には、全く同じ文字が複数の符号位置に重複して登録されているものや、本来統合されるはずの文字が別字として登録されているものなどが発見されている。とりわけ、拡張Bの追加の際には、かつてBMPで統合されたはずの「点なしの『器』」（U+5668で点の有無を包摂）に新たな符号位置 (U+20F96) を与えるといった、不整合な例が多数見られる。 CJK統合漢字の中には、字形が似ているだけで統合された物が1例確認されている。拡張Aに含まれるU+4039（䀹）がそれである。この訂正のためにCJK統合漢字U+9FC3（鿃）にU+FAD4を割り当て直した (Unicode 5.1)。大漢和辞典における23381番 (U+4039) と23380番 (U+FAD4 = U+9FC3) である。 䀹 ⇔ 鿃の右側が、陝の右側と同じ。 U+4039 ⇔ U+9FC3 花園明朝フォントでは訂正に対応している。䀹 ⇔ 鿃 CJK統合漢字拡張B以降の拡張漢字集合は、追加漢字面に存在するため、UTF-16を採用したシステムでは、Unicode 2.0で追加されたサロゲートペア（代用対）という二つの代用符号位置を組み合わせて1文字として認識させる手法を取らないと符号化できない。そのため、アプリケーションによってはいまだに対応ができていないケースがある。JIS X 0213の漢字のうち一部はこの拡張Bに含むため、文字列をUTF-16で処理するシステムにおいてJIS X 0213の全ての文字に対応する場合はサロゲートペアを正しく処理できる必要がある。 CJK統合漢字 ^ a b “UAX #38 Unicode® Standard Annex #38 ― Unicode Han Database (Unihan)”. 2020年7月8日閲覧。 ^ 英: cognate ^ まつもとゆきひろ『コードの世界』日経BP、2009年。ASIN B00HZGBI76。https://books.google.co.jp/books?id=F72jDwAAQBAJ&pg=PA340。2020年3月26日閲覧。  ^ 安岡孝一. “Unicodeの矛盾”. 2008年3月22日閲覧。 ^ a b 川幡太一 (Oct 2001). “新ISO/IEC 10646とUnicodeの漢字を検証する”. 漢字文献情報処理研究 2: pp.134-140. ISBN 4-87220-051-9. http://www.jaet.gr.jp/jj/2.html 2008年3月22日閲覧。.  ^ 安岡孝一・安岡素子『「唡」はなぜJIS X 0221に含まれているのか ―Unicode幽霊字研究―』情報処理学会研究報告、人文科学とコンピュータ　35-9、1997-08-29