JIS第3水準・第4水準のうち、Unicode の CJK Extension B にあるのは、どんな漢字か。
ユニコード・ファンのみなさん、こんにちは。 今まで CJK Ext B は、かなり未知の霧に包まれてしたが、 Shift_JIS-2004 (JIS X 0213:2004) vs Unicode mapping table という資料を発見! JIS第3水準、第4水準のなかで、303文字が、Ext B の範囲になるらしいことが分かりました。 Unicode での番号も規格で、ちゃんと確定しているらしい。
具体的にこれこれのJIS漢字の表示に使う、と分かると、 Unicode の Plane 2 にグッと親近感が増すのでは、ないでしょうか。
この303文字の半分くらいは、 Office Proofing Tools などについてくる中国語フォント SURSONG.TTF を使って表示できますし、 Y.Oz Vox には全部入っています。 そして、Mozilla Firefox は、全部表示できました! BMP外のサポートが苦手なMSIE6は、今回は完敗、一文字も表示できません。
さらに! 眺めてみると、 U+25771 は、万億兆京垓ジョのジョでは、ありませんか! 使いたかったのに使えなかった文字がこんなところに。というか、歴史的には、これ、もともと誤字だったのが定着した幽霊文字らしいですが。
幽霊漢字といえば U+216B4 では逆に、知る人ぞ知る「やまいちおんな」の訂正版も入ってる。
「やまいちおんな」というのは上から「山、一、女」と書いた文字 U+599B 「妛」で、 JIS第二水準に入っていて、Shift_JISなどで普通に表示できる。メールでも安全に使える。 しかし、この文字は何に使うのか。 厳密には、この字形の文字は、世界のどこにも実在していない。 何かの手違いでJISコードの規格に入ってしまったらしい謎の文字だ。
「山、女」で「あけび」という字が、実際に地名で使われた形跡があるらしい。 その文字に間違って棒が一本入って「山、一、女」になったのではないか、とかいうことだ。 もしそうだったら、わざわざコードポイントを作らなくても「妛」のコードポイントの場所のグリフを訂正すればいい話なのだが、 一度決まった規格を訂正するとあらゆる方面に重大な影響が及ぶので、そうもいかないのだろう。
実際、この文字は、中国語フォント SURSONG.TTF にも収録されているのである。 「山」の縦棒が突き抜けていてグリフが微妙に違う。 この微妙に違うグリフの漢字「シ」(意味は、あなどる)は実在する。 実在するが、このコードポイントは、本来は「シ」のためにあるのではなく、 「あけび」が入る場所だった。
間違った字体に酷似した字体が実在したのは、 不幸中の幸いというべきだろう。 今では実在する「シ」がここに当てはめられ、 「あけび」は改めて U+216B4 に収録された。そう割り切れば、 U+599B は必ずしもコードポイントの無駄遣いではなくなる。
「万億兆京垓ジョのジョ」のことを思えば「幽霊文字」と決めつけるのは早計だ。 存在するすべての文字は現実で……、そして幻なんだ。
CJK Extension B (漢字拡張B)というのは、 Unicode の CJK Unified Ideographs Extension B の略で、さらに略して CJK Ext B とか、単に Ext B と書くこともある。 CJK とは中国語・日本語・韓国語のこと、 Unified Ideographs とは、それらの言語で部分的には共通して用いられるイデオグラフ(表意文字)、 要するに「漢字」だ。
2004年現在、ユニコード上には「漢字」「漢字拡張A」「漢字拡張B」の三つの領域がある。 このうち「漢字」は、もともと Unicode 表にあったもので、 BMP上にある(U+4E00 - U+9FFF)。 BMPというのは、 Basic Multilingual Plane(基本多言語面)の略で、 Unicode の最初の面であり、 番号でいうと U+0000 から U+FFFFまで。なお、ユニコード表の番号(コードポイント)を言うときは、 U+「16進数」 のように書くことになっている。 コードポイントというのは(フォントによって異なるグリフ=具体的な「文字の形」ではなく) 抽象的な意味での「文字」を割り当てる場所のこと。 同じコードポイントの文字でもフォントの種類によってグリフがかなり違うことがあり、 逆に同じグリフの文字が(互換性などのために)2か所以上のコードポイントに登録されていることもある。
2004年現在、一般には Unicode を使うアプリケーション側が発展途上で、 フォントファイルも少なく、 BMP外の文字は、BMPほど自由に利用できないことが多い。 BMPの範囲に割り当ててもらう、ということは、 実用上非常に有利である。 さらに、 その文字・その言語が「世界中の多言語環境でサポートされるべき基本の文字」として国際的に認識される、 という政治的面がある。 BMPには、たかだか6万程度しか文字を割り当てる場所がなく、 一つ一つのコードポイントが貴重だ。 世界各国の(マイナーな)言語の文字もそれなりに収録しないとその地域で不満がつのり、 ひいては Unicode の国際的普及を阻害する。 BMPの文字割り当ては技術的なだけでなく、 領土の割り当て=国境線の決定のような、 高度に政治的な要素がある。 例えば、アイヌ語の表記に使う文字が BMP にあり、 Political correctness が重視されているのが分かる。 他方、CJK文字として、中国・日本・韓国の漢字を統合してしまったことについても、 各地域の文化とのかねあいもあって、さまざまな論議を呼んだ。
当初の「漢字」だけでは使える文字の制限が多すぎたので、 Unicode バージョン3.1 のとき、 「Extension A」(拡張A)と「Extension B」(拡張B)として、 何万もの漢字がユニコード表に追加された。 このうち、Ext A は、比較的少ない文字数であるが、 実用上重要度が高いと考えられる文字の追補で、BMP に割り当てられた(U+3400 - U+4DB5)。 この領域には、日本でも利用頻度の高い漢字が結構ある。 一方、Ext B の方は「珍しい」漢字であり、BMPではなく、Plane 2に入っている。 BMPという一等地には入れなかったかわり、Plane 2 は事実上、面全部が漢字用になっている。 4万字以上ある。逆に言えば、 一面はたかだか6万字程度なので、Ext B の文字は、どっちにしても BMP には入りきらない。 「拡張A」の漢字はフォントさえあれば割とすぐ使えるのに対して、 「拡張B」の漢字は、BMP外の文字を使える環境でないと使えない。
基本的に、Ext B 領域には、日本で日常的に多用される漢字はない(必要性が高いものは、 Ext A に入った)。 JISにあるのは第三~第四水準まで含めても、Ext B の4万字以上のうち、1%にも満たない。 それでも、一部はJISにも登録されている訳で、特殊な用語・地名・人名などで日本でも用いられる予定だ。 例えば、日本語の数詞で「万億兆京垓」の次は「ジョ」というのだが、 この「ジョ」という字は日本独特で Ext B に入っている。
JIS X 0213:2000、
JIS X 0213:2004 まで含むJISの漢字を、Unicode で符号化する場合の対応表が、
下記にある。
Shift_JIS-2004 (JIS X 0213:2004) vs Unicode mapping table
これによると、BMP(Basic Multilingual Plane: 基本多言語面)外になるものが、303コードポイントあるらしい。その内訳は、 2000年に追加されたものが302文字、2004年の追加が1文字、 これらは、すべて Unicode 3.1 の時点で Unicode 側では定義された、と読み取れる。
規格の原文を調べたわけでないので、いまひとつハッキリしない面もあるが、 Unicode で Supplementary Ideographic Plane と呼ばれる Plane 2 に割り当てられている CJK Unified Ideographs Extension B の範囲の 42,711 種類の漢字のなかで、 「日本の漢字」としても使われることが予定されているのが少なくとも303はある、ということだ。
「日本の漢字としても」は「も」であって、日本の漢字専用というわけではなく、 その半分くらいは中国語のフォント SURSONG.TTF にも収録されていて、中国語圏でも用途があるらしい。 漢字はもともと中国の文字だから、何も不思議はない。 また、ここに挙げた以外はすべて中国語などの専用というわけではなく、 もちろん、JISの第三水準・第四水準までに入っていなくても、 CJK Ext B にある 42,711 の漢字は必要に応じて日本語の表記にも利用できる。
別記事「基本多言語面を越えて: 古代イタリア文字」「Mozilla は CJK Ext B を扱える」も参照。
以下には、上記の対応表からこの303コードポイントについての行を抜粋したもの、 それを実際に Mozilla Firefox で表示させた結果の画像、 そして、同様なテスト目的で使えるHTMLコードがある (このページをブラウザで読み込むことによって、あなたの環境で上記の文字が表示できるか、 テストに利用できる)。
この記事は間違いを含んでいる可能性がある。
上記の資料は、公式のものではなく、有志の手によるものだ。 以下の303コードポイントは、そこから Perl スクリプトで抜き出したり、 HTMLコードを生成させたものだし、表示に使っているグリフ(文字の実際の形)も、 Microsoft が公開している Simsun (Founder Extended) にあるものは、そのグリフとも対照させてあるが、 全体としては、有志の手によるフリーウェアである。
こうした作業に思わぬミスが入りやすいのは、 天下のJIS規格そのものに「幽霊文字」が入っていることからも明らかだ。 見間違い、勘違い、誤解、ミスタイプなど、 コードポイントは数値が1ずれているだけで大変で、 後から公式の変換ライブラリができたとき非互換になったり、往復変換できなくなる。
したがって、この記事の説明や、対照表、コードポイントの番号などは、 あくまで参考にとどめ、ミッションクリティカルなプログラミングなどでは、 必ず規格の原文を確認してほしい。
現在では、Ext A/B を網羅した優れたフリーフォントが複数存在している。 「Unicode CJK Ext A/B 網羅・約5万字収録のフリーフォント」参照。
JIS X 0213:2004 までの(JIS第一水準~第四水準の)すべての文字・記号のうち、
Unicode で符号化したときに、Ext B を使うものは303のようである。
上記の対照表から、 /U\+[0-9A-F]{5}/
を含む行を機械的にスクリプトで抜き出したところ、
303あった。
この303コードポイントは日本語専用とは限らず、中国語などでも利用される可能性がある。
またこの303個以外の Ext B のコードポイントが、日本語の表記に使えない訳ではない
(JISの規格には含まれていないというだけで、
日本でまったく使われない文字であるということではない)。
CJK Ext B の全体は、次のPDFファイルで見ることができる。
http://www.unicode.org/charts/PDF/U20000.pdf
0x87A0 U+2000B # <cjk> [2000] [Unicode3.1] Private: U+F780 0x8861 U+2123D # <cjk> [2000] [Unicode3.1] Private: U+F78A 0x886B U+2131B # <cjk> [2000] [Unicode3.1] Private: U+F78B 0x8880 U+2146E # <cjk> [2000] [Unicode3.1] Private: U+F78E 0x889B U+218BD # <cjk> [2000] [Unicode3.1] Private: U+F78F 0x9873 U+20B9F # <cjk> [2004] [Unicode3.1] 0x9883 U+216B4 # <cjk> [2000] [Unicode3.1] Private: U+F792 0x988E U+21E34 # <cjk> [2000] [Unicode3.1] Private: U+F793 0xEB59 U+231C4 # <cjk> [2000] [Unicode3.1] Private: U+F79A 0xEB92 U+235C4 # <cjk> [2000] [Unicode3.1] Private: U+F79D 0xEBA7 U+2373F # <cjk> [2000] [Unicode3.1] Private: U+F79F 0xEBB0 U+23763 # <cjk> [2000] [Unicode3.1] Private: U+F7A0 0xEBDE U+23CFE # <cjk> [2000] [Unicode3.1] Private: U+F7A1 0xEC8C U+247F1 # <cjk> [2000] [Unicode3.1] Private: U+F7A6 0xECFC U+2548E # <cjk> [2000] [Unicode3.1] Private: U+F7A8 0xED48 U+2550E # <cjk> [2000] [Unicode3.1] Private: U+F7AA 0xED66 U+25771 # <cjk> [2000] [Unicode3.1] Private: U+F7B3 0xED73 U+259C4 # <cjk> [2000] [Unicode3.1] Private: U+F7B6 0xED8E U+25DA1 # <cjk> [2000] [Unicode3.1] Private: U+F7B8 0xEDDB U+26AFF # <cjk> [2000] [Unicode3.1] Private: U+F7BE 0xEE52 U+26E40 # <cjk> [2000] [Unicode3.1] Private: U+F7C0 0xEE68 U+270F4 # <cjk> [2000] [Unicode3.1] Private: U+F7C1 0xEE8C U+27684 # <cjk> [2000] [Unicode3.1] Private: U+F7C2 0xEEC7 U+28277 # <cjk> [2000] [Unicode3.1] Private: U+F7C9 0xEECF U+283CD # <cjk> [2000] [Unicode3.1] Private: U+F7CA 0xEFE4 U+2A190 # <cjk> [2000] [Unicode3.1] Private: U+F7D0 0xF040 U+20089 # <cjk> [2000] [Unicode3.1] Private: U+F7D1 0xF04A U+200A2 # <cjk> [2000] [Unicode3.1] Private: U+F7D2 0xF04D U+200A4 # <cjk> [2000] [Unicode3.1] Private: U+F7D3 0xF055 U+201A2 # <cjk> [2000] [Unicode3.1] Private: U+F7D4 0xF065 U+20213 # <cjk> [2000] [Unicode3.1] Private: U+F7D5 0xF090 U+2032B # <cjk> [2000] [Unicode3.1] Private: U+F7D6 0xF097 U+20381 # <cjk> [2000] [Unicode3.1] Private: U+F7D7 0xF099 U+20371 # <cjk> [2000] [Unicode3.1] Private: U+F7D8 0xF141 U+203F9 # <cjk> [2000] [Unicode3.1] Private: U+F7D9 0xF144 U+2044A # <cjk> [2000] [Unicode3.1] Private: U+F7DA 0xF146 U+20509 # <cjk> [2000] [Unicode3.1] Private: U+F7DB 0xF150 U+205D6 # <cjk> [2000] [Unicode3.1] Private: U+F7DC 0xF151 U+20628 # <cjk> [2000] [Unicode3.1] Private: U+F7DD 0xF157 U+2074F # <cjk> [2000] [Unicode3.1] Private: U+F7DE 0xF15E U+20807 # <cjk> [2000] [Unicode3.1] Private: U+F7DF 0xF160 U+2083A # <cjk> [2000] [Unicode3.1] Private: U+F7E0 0xF169 U+208B9 # <cjk> [2000] [Unicode3.1] Private: U+F7E1 0xF171 U+2097C # <cjk> [2000] [Unicode3.1] Private: U+F7E2 0xF172 U+2099D # <cjk> [2000] [Unicode3.1] Private: U+F7E3 0xF178 U+20AD3 # <cjk> [2000] [Unicode3.1] Private: U+F7E4 0xF17B U+20B1D # <cjk> [2000] [Unicode3.1] Private: U+F7E5 0xF197 U+20D45 # <cjk> [2000] [Unicode3.1] Private: U+F7E6 0xF1A8 U+20DE1 # <cjk> [2000] [Unicode3.1] Private: U+F7E7 0xF1AF U+20E95 # <cjk> [2000] [Unicode3.1] Private: U+F7E8 0xF1B0 U+20E6D # <cjk> [2000] [Unicode3.1] Private: U+F7E9 0xF1B8 U+20E64 # <cjk> [2000] [Unicode3.1] Private: U+F7EA 0xF1BB U+20F5F # <cjk> [2000] [Unicode3.1] Private: U+F7EB 0xF1D7 U+21201 # <cjk> [2000] [Unicode3.1] Private: U+F7EC 0xF1DA U+21255 # <cjk> [2000] [Unicode3.1] Private: U+F7ED 0xF1DC U+2127B # <cjk> [2000] [Unicode3.1] Private: U+F7EE 0xF1E1 U+21274 # <cjk> [2000] [Unicode3.1] Private: U+F7EF 0xF1E8 U+212E4 # <cjk> [2000] [Unicode3.1] Private: U+F7F0 0xF1E9 U+212D7 # <cjk> [2000] [Unicode3.1] Private: U+F7F1 0xF1F0 U+212FD # <cjk> [2000] [Unicode3.1] Private: U+F7F2 0xF1F2 U+21336 # <cjk> [2000] [Unicode3.1] Private: U+F7F3 0xF1F3 U+21344 # <cjk> [2000] [Unicode3.1] Private: U+F7F4 0xF244 U+213C4 # <cjk> [2000] [Unicode3.1] Private: U+F7F5 0xF251 U+2146D # <cjk> [2000] [Unicode3.1] Private: U+F7F6 0xF25D U+215D7 # <cjk> [2000] [Unicode3.1] Private: U+F7F7 0xF263 U+26C29 # <cjk> [2000] [Unicode3.1] Private: U+F7F8 0xF266 U+21647 # <cjk> [2000] [Unicode3.1] Private: U+F7F9 0xF274 U+21706 # <cjk> [2000] [Unicode3.1] Private: U+F7FA 0xF275 U+21742 # <cjk> [2000] [Unicode3.1] Private: U+F7FB 0xF29E U+219C3 # <cjk> [2000] [Unicode3.1] Private: U+F7FC 0xF0AE U+21C56 # <cjk> [2000] [Unicode3.1] Private: U+F7FD 0xF0B5 U+21D2D # <cjk> [2000] [Unicode3.1] Private: U+F7FE 0xF0B6 U+21D45 # <cjk> [2000] [Unicode3.1] Private: U+F7FF 0xF0B8 U+21D78 # <cjk> [2000] [Unicode3.1] Private: U+F800 0xF0B9 U+21D62 # <cjk> [2000] [Unicode3.1] Private: U+F801 0xF0BD U+21DA1 # <cjk> [2000] [Unicode3.1] Private: U+F802 0xF0BE U+21D9C # <cjk> [2000] [Unicode3.1] Private: U+F803 0xF0C3 U+21D92 # <cjk> [2000] [Unicode3.1] Private: U+F804 0xF0C6 U+21DB7 # <cjk> [2000] [Unicode3.1] Private: U+F805 0xF0C8 U+21DE0 # <cjk> [2000] [Unicode3.1] Private: U+F806 0xF0C9 U+21E33 # <cjk> [2000] [Unicode3.1] Private: U+F807 0xF0D9 U+21F1E # <cjk> [2000] [Unicode3.1] Private: U+F808 0xF0E4 U+21F76 # <cjk> [2000] [Unicode3.1] Private: U+F809 0xF0EA U+21FFA # <cjk> [2000] [Unicode3.1] Private: U+F80A 0xF2A0 U+2217B # <cjk> [2000] [Unicode3.1] Private: U+F80B 0xF2A9 U+2231E # <cjk> [2000] [Unicode3.1] Private: U+F80C 0xF2AE U+223AD # <cjk> [2000] [Unicode3.1] Private: U+F80D 0xF2CE U+226F3 # <cjk> [2000] [Unicode3.1] Private: U+F80E 0xF2E3 U+2285B # <cjk> [2000] [Unicode3.1] Private: U+F80F 0xF2EB U+228AB # <cjk> [2000] [Unicode3.1] Private: U+F810 0xF2F0 U+2298F # <cjk> [2000] [Unicode3.1] Private: U+F811 0xF343 U+22AB8 # <cjk> [2000] [Unicode3.1] Private: U+F812 0xF348 U+22B4F # <cjk> [2000] [Unicode3.1] Private: U+F813 0xF349 U+22B50 # <cjk> [2000] [Unicode3.1] Private: U+F814 0xF351 U+22B46 # <cjk> [2000] [Unicode3.1] Private: U+F815 0xF353 U+22C1D # <cjk> [2000] [Unicode3.1] Private: U+F816 0xF354 U+22BA6 # <cjk> [2000] [Unicode3.1] Private: U+F817 0xF358 U+22C24 # <cjk> [2000] [Unicode3.1] Private: U+F818 0xF375 U+22DE1 # <cjk> [2000] [Unicode3.1] Private: U+F819 0xF39D U+231C3 # <cjk> [2000] [Unicode3.1] Private: U+F81A 0xF3A1 U+231F5 # <cjk> [2000] [Unicode3.1] Private: U+F81B 0xF3A2 U+231B6 # <cjk> [2000] [Unicode3.1] Private: U+F81C 0xF3B8 U+23372 # <cjk> [2000] [Unicode3.1] Private: U+F81D 0xF3BA U+233D3 # <cjk> [2000] [Unicode3.1] Private: U+F81E 0xF3BB U+233D2 # <cjk> [2000] [Unicode3.1] Private: U+F81F 0xF3C0 U+233D0 # <cjk> [2000] [Unicode3.1] Private: U+F820 0xF3C1 U+233E4 # <cjk> [2000] [Unicode3.1] Private: U+F821 0xF3C2 U+233D5 # <cjk> [2000] [Unicode3.1] Private: U+F822 0xF3C5 U+233DA # <cjk> [2000] [Unicode3.1] Private: U+F823 0xF3C7 U+233DF # <cjk> [2000] [Unicode3.1] Private: U+F824 0xF3D3 U+2344A # <cjk> [2000] [Unicode3.1] Private: U+F825 0xF3D4 U+23451 # <cjk> [2000] [Unicode3.1] Private: U+F826 0xF3D5 U+2344B # <cjk> [2000] [Unicode3.1] Private: U+F827 0xF3D9 U+23465 # <cjk> [2000] [Unicode3.1] Private: U+F828 0xF3F5 U+234E4 # <cjk> [2000] [Unicode3.1] Private: U+F829 0xF3F6 U+2355A # <cjk> [2000] [Unicode3.1] Private: U+F82A 0xF449 U+23594 # <cjk> [2000] [Unicode3.1] Private: U+F82B 0xF45E U+23639 # <cjk> [2000] [Unicode3.1] Private: U+F82C 0xF45F U+23647 # <cjk> [2000] [Unicode3.1] Private: U+F82D 0xF461 U+23638 # <cjk> [2000] [Unicode3.1] Private: U+F82E 0xF462 U+2363A # <cjk> [2000] [Unicode3.1] Private: U+F82F 0xF46D U+2371C # <cjk> [2000] [Unicode3.1] Private: U+F830 0xF478 U+2370C # <cjk> [2000] [Unicode3.1] Private: U+F831 0xF481 U+23764 # <cjk> [2000] [Unicode3.1] Private: U+F832 0xF489 U+237FF # <cjk> [2000] [Unicode3.1] Private: U+F833 0xF48A U+237E7 # <cjk> [2000] [Unicode3.1] Private: U+F834 0xF490 U+23824 # <cjk> [2000] [Unicode3.1] Private: U+F835 0xF495 U+2383D # <cjk> [2000] [Unicode3.1] Private: U+F836 0xF4A1 U+23A98 # <cjk> [2000] [Unicode3.1] Private: U+F837 0xF4B2 U+23C7F # <cjk> [2000] [Unicode3.1] Private: U+F838 0xF4C7 U+23D00 # <cjk> [2000] [Unicode3.1] Private: U+F839 0xF4DA U+23D40 # <cjk> [2000] [Unicode3.1] Private: U+F83A 0xF4DC U+23DFA # <cjk> [2000] [Unicode3.1] Private: U+F83B 0xF4DD U+23DF9 # <cjk> [2000] [Unicode3.1] Private: U+F83C 0xF4DE U+23DD3 # <cjk> [2000] [Unicode3.1] Private: U+F83D 0xF551 U+23F7E # <cjk> [2000] [Unicode3.1] Private: U+F83E 0xF566 U+24096 # <cjk> [2000] [Unicode3.1] Private: U+F83F 0xF56C U+24103 # <cjk> [2000] [Unicode3.1] Private: U+F840 0xF581 U+241C6 # <cjk> [2000] [Unicode3.1] Private: U+F841 0xF584 U+241FE # <cjk> [2000] [Unicode3.1] Private: U+F842 0xF5A0 U+243BC # <cjk> [2000] [Unicode3.1] Private: U+F843 0xF5B1 U+24629 # <cjk> [2000] [Unicode3.1] Private: U+F845 0xF5B7 U+246A5 # <cjk> [2000] [Unicode3.1] Private: U+F846 0xF5D1 U+24896 # <cjk> [2000] [Unicode3.1] Private: U+F847 0xF5F9 U+24A4D # <cjk> [2000] [Unicode3.1] Private: U+F848 0xF64D U+24B56 # <cjk> [2000] [Unicode3.1] Private: U+F849 0xF64F U+24B6F # <cjk> [2000] [Unicode3.1] Private: U+F84A 0xF654 U+24C16 # <cjk> [2000] [Unicode3.1] Private: U+F84B 0xF663 U+24D14 # <cjk> [2000] [Unicode3.1] Private: U+F84C 0xF67C U+24E0E # <cjk> [2000] [Unicode3.1] Private: U+F84D 0xF681 U+24E37 # <cjk> [2000] [Unicode3.1] Private: U+F84E 0xF686 U+24E6A # <cjk> [2000] [Unicode3.1] Private: U+F84F 0xF689 U+24E8B # <cjk> [2000] [Unicode3.1] Private: U+F850 0xF695 U+2504A # <cjk> [2000] [Unicode3.1] Private: U+F851 0xF697 U+25055 # <cjk> [2000] [Unicode3.1] Private: U+F852 0xF69A U+25122 # <cjk> [2000] [Unicode3.1] Private: U+F853 0xF69F U+251A9 # <cjk> [2000] [Unicode3.1] Private: U+F854 0xF6A1 U+251E5 # <cjk> [2000] [Unicode3.1] Private: U+F855 0xF6A2 U+251CD # <cjk> [2000] [Unicode3.1] Private: U+F856 0xF6A6 U+2521E # <cjk> [2000] [Unicode3.1] Private: U+F857 0xF6AA U+2524C # <cjk> [2000] [Unicode3.1] Private: U+F858 0xF6BB U+2542E # <cjk> [2000] [Unicode3.1] Private: U+F859 0xF6C6 U+254D9 # <cjk> [2000] [Unicode3.1] Private: U+F85A 0xF6D9 U+255A7 # <cjk> [2000] [Unicode3.1] Private: U+F85B 0xF6F3 U+257A9 # <cjk> [2000] [Unicode3.1] Private: U+F85C 0xF6F4 U+257B4 # <cjk> [2000] [Unicode3.1] Private: U+F85D 0xF751 U+259D4 # <cjk> [2000] [Unicode3.1] Private: U+F85E 0xF75C U+25AE4 # <cjk> [2000] [Unicode3.1] Private: U+F85F 0xF75D U+25AE3 # <cjk> [2000] [Unicode3.1] Private: U+F860 0xF75F U+25AF1 # <cjk> [2000] [Unicode3.1] Private: U+F861 0xF771 U+25BB2 # <cjk> [2000] [Unicode3.1] Private: U+F862 0xF77C U+25C4B # <cjk> [2000] [Unicode3.1] Private: U+F863 0xF77D U+25C64 # <cjk> [2000] [Unicode3.1] Private: U+F864 0xF793 U+25E2E # <cjk> [2000] [Unicode3.1] Private: U+F865 0xF794 U+25E56 # <cjk> [2000] [Unicode3.1] Private: U+F866 0xF795 U+25E65 # <cjk> [2000] [Unicode3.1] Private: U+F867 0xF797 U+25E62 # <cjk> [2000] [Unicode3.1] Private: U+F868 0xF79B U+25ED8 # <cjk> [2000] [Unicode3.1] Private: U+F869 0xF79D U+25EC2 # <cjk> [2000] [Unicode3.1] Private: U+F86A 0xF7A0 U+25EE8 # <cjk> [2000] [Unicode3.1] Private: U+F86B 0xF7A2 U+25F23 # <cjk> [2000] [Unicode3.1] Private: U+F86C 0xF7A5 U+25F5C # <cjk> [2000] [Unicode3.1] Private: U+F86D 0xF7AC U+25FE0 # <cjk> [2000] [Unicode3.1] Private: U+F86E 0xF7AD U+25FD4 # <cjk> [2000] [Unicode3.1] Private: U+F86F 0xF7B2 U+2600C # <cjk> [2000] [Unicode3.1] Private: U+F870 0xF7B3 U+25FFB # <cjk> [2000] [Unicode3.1] Private: U+F871 0xF7BB U+26017 # <cjk> [2000] [Unicode3.1] Private: U+F872 0xF7C0 U+26060 # <cjk> [2000] [Unicode3.1] Private: U+F873 0xF7CD U+260ED # <cjk> [2000] [Unicode3.1] Private: U+F874 0xF7E7 U+26270 # <cjk> [2000] [Unicode3.1] Private: U+F876 0xF7E9 U+26286 # <cjk> [2000] [Unicode3.1] Private: U+F877 0xF7F0 U+2634C # <cjk> [2000] [Unicode3.1] Private: U+F878 0xF7F3 U+23D0E # <cjk> [2000] [Unicode3.1] Private: U+F879 0xF7F7 U+26402 # <cjk> [2000] [Unicode3.1] Private: U+F87A 0xF854 U+2667E # <cjk> [2000] [Unicode3.1] Private: U+F87B 0xF859 U+266B0 # <cjk> [2000] [Unicode3.1] Private: U+F87C 0xF865 U+2671D # <cjk> [2000] [Unicode3.1] Private: U+F87D 0xF875 U+268DD # <cjk> [2000] [Unicode3.1] Private: U+F87E 0xF877 U+268EA # <cjk> [2000] [Unicode3.1] Private: U+F87F 0xF879 U+26951 # <cjk> [2000] [Unicode3.1] Private: U+F880 0xF87C U+2696F # <cjk> [2000] [Unicode3.1] Private: U+F881 0xF87E U+269DD # <cjk> [2000] [Unicode3.1] Private: U+F882 0xF883 U+26A1E # <cjk> [2000] [Unicode3.1] Private: U+F883 0xF88A U+26A58 # <cjk> [2000] [Unicode3.1] Private: U+F884 0xF890 U+26A8C # <cjk> [2000] [Unicode3.1] Private: U+F885 0xF893 U+26AB7 # <cjk> [2000] [Unicode3.1] Private: U+F886 0xF8C2 U+26C73 # <cjk> [2000] [Unicode3.1] Private: U+F889 0xF8CC U+26CDD # <cjk> [2000] [Unicode3.1] Private: U+F88A 0xF8DB U+26E65 # <cjk> [2000] [Unicode3.1] Private: U+F88B 0xF8F3 U+26F94 # <cjk> [2000] [Unicode3.1] Private: U+F88C 0xF8FC U+26FF8 # <cjk> [2000] [Unicode3.1] Private: U+F88D 0xF940 U+26FF6 # <cjk> [2000] [Unicode3.1] Private: U+F88E 0xF941 U+26FF7 # <cjk> [2000] [Unicode3.1] Private: U+F88F 0xF952 U+2710D # <cjk> [2000] [Unicode3.1] Private: U+F890 0xF955 U+27139 # <cjk> [2000] [Unicode3.1] Private: U+F891 0xF984 U+273DB # <cjk> [2000] [Unicode3.1] Private: U+F892 0xF985 U+273DA # <cjk> [2000] [Unicode3.1] Private: U+F893 0xF98B U+273FE # <cjk> [2000] [Unicode3.1] Private: U+F894 0xF98E U+27410 # <cjk> [2000] [Unicode3.1] Private: U+F895 0xF993 U+27449 # <cjk> [2000] [Unicode3.1] Private: U+F896 0xF9A7 U+27615 # <cjk> [2000] [Unicode3.1] Private: U+F897 0xF9A8 U+27614 # <cjk> [2000] [Unicode3.1] Private: U+F898 0xF9AA U+27631 # <cjk> [2000] [Unicode3.1] Private: U+F899 0xF9B2 U+27693 # <cjk> [2000] [Unicode3.1] Private: U+F89A 0xF9BA U+2770E # <cjk> [2000] [Unicode3.1] Private: U+F89B 0xF9BC U+27723 # <cjk> [2000] [Unicode3.1] Private: U+F89C 0xF9C0 U+27752 # <cjk> [2000] [Unicode3.1] Private: U+F89D 0xF9D4 U+27985 # <cjk> [2000] [Unicode3.1] Private: U+F89E 0xF9E1 U+27A84 # <cjk> [2000] [Unicode3.1] Private: U+F89F 0xF9F5 U+27BB3 # <cjk> [2000] [Unicode3.1] Private: U+F8A0 0xF9F7 U+27BBE # <cjk> [2000] [Unicode3.1] Private: U+F8A1 0xF9F8 U+27BC7 # <cjk> [2000] [Unicode3.1] Private: U+F8A2 0xFA44 U+27CB8 # <cjk> [2000] [Unicode3.1] Private: U+F8A3 0xFA4E U+27DA0 # <cjk> [2000] [Unicode3.1] Private: U+F8A4 0xFA51 U+27E10 # <cjk> [2000] [Unicode3.1] Private: U+F8A5 0xFA58 U+27FB7 # <cjk> [2000] [Unicode3.1] Private: U+F8A6 0xFA61 U+2808A # <cjk> [2000] [Unicode3.1] Private: U+F8A7 0xFA67 U+280BB # <cjk> [2000] [Unicode3.1] Private: U+F8A8 0xFA78 U+28282 # <cjk> [2000] [Unicode3.1] Private: U+F8A9 0xFA7D U+282F3 # <cjk> [2000] [Unicode3.1] Private: U+F8AA 0xFA86 U+2840C # <cjk> [2000] [Unicode3.1] Private: U+F8AB 0xFA8B U+28455 # <cjk> [2000] [Unicode3.1] Private: U+F8AD 0xFA9A U+2856B # <cjk> [2000] [Unicode3.1] Private: U+F8AE 0xFA9E U+285C8 # <cjk> [2000] [Unicode3.1] Private: U+F8AF 0xFA9F U+285C9 # <cjk> [2000] [Unicode3.1] Private: U+F8B0 0xFAAA U+286D7 # <cjk> [2000] [Unicode3.1] Private: U+F8B1 0xFAAD U+286FA # <cjk> [2000] [Unicode3.1] Private: U+F8B2 0xFACD U+28949 # <cjk> [2000] [Unicode3.1] Private: U+F8B3 0xFACE U+28946 # <cjk> [2000] [Unicode3.1] Private: U+F8B4 0xFAD5 U+2896B # <cjk> [2000] [Unicode3.1] Private: U+F8B5 0xFAE3 U+28987 # <cjk> [2000] [Unicode3.1] Private: U+F8B6 0xFAE4 U+28988 # <cjk> [2000] [Unicode3.1] Private: U+F8B7 0xFAEF U+289BA # <cjk> [2000] [Unicode3.1] Private: U+F8B8 0xFAF0 U+289BB # <cjk> [2000] [Unicode3.1] Private: U+F8B9 0xFAFC U+28A1E # <cjk> [2000] [Unicode3.1] Private: U+F8BA 0xFB40 U+28A29 # <cjk> [2000] [Unicode3.1] Private: U+F8BB 0xFB4B U+28A71 # <cjk> [2000] [Unicode3.1] Private: U+F8BC 0xFB4C U+28A43 # <cjk> [2000] [Unicode3.1] Private: U+F8BD 0xFB55 U+28A99 # <cjk> [2000] [Unicode3.1] Private: U+F8BE 0xFB56 U+28ACD # <cjk> [2000] [Unicode3.1] Private: U+F8BF 0xFB5C U+28AE4 # <cjk> [2000] [Unicode3.1] Private: U+F8C0 0xFB5D U+28ADD # <cjk> [2000] [Unicode3.1] Private: U+F8C1 0xFB6D U+28BC1 # <cjk> [2000] [Unicode3.1] Private: U+F8C2 0xFB6E U+28BEF # <cjk> [2000] [Unicode3.1] Private: U+F8C3 0xFB76 U+28D10 # <cjk> [2000] [Unicode3.1] Private: U+F8C4 0xFB79 U+28D71 # <cjk> [2000] [Unicode3.1] Private: U+F8C5 0xFB7B U+28DFB # <cjk> [2000] [Unicode3.1] Private: U+F8C6 0xFB7C U+28E1F # <cjk> [2000] [Unicode3.1] Private: U+F8C7 0xFB81 U+28E36 # <cjk> [2000] [Unicode3.1] Private: U+F8C8 0xFB85 U+28E89 # <cjk> [2000] [Unicode3.1] Private: U+F8C9 0xFB87 U+28EEB # <cjk> [2000] [Unicode3.1] Private: U+F8CA 0xFB89 U+28F32 # <cjk> [2000] [Unicode3.1] Private: U+F8CB 0xFB91 U+28FF8 # <cjk> [2000] [Unicode3.1] Private: U+F8CC 0xFBA0 U+292A0 # <cjk> [2000] [Unicode3.1] Private: U+F8CD 0xFBA1 U+292B1 # <cjk> [2000] [Unicode3.1] Private: U+F8CE 0xFBB6 U+29490 # <cjk> [2000] [Unicode3.1] Private: U+F8CF 0xFBC0 U+295CF # <cjk> [2000] [Unicode3.1] Private: U+F8D0 0xFBCA U+2967F # <cjk> [2000] [Unicode3.1] Private: U+F8D1 0xFBD4 U+296F0 # <cjk> [2000] [Unicode3.1] Private: U+F8D2 0xFBD7 U+29719 # <cjk> [2000] [Unicode3.1] Private: U+F8D3 0xFBDB U+29750 # <cjk> [2000] [Unicode3.1] Private: U+F8D4 0xFBF4 U+298C6 # <cjk> [2000] [Unicode3.1] Private: U+F8D5 0xFC4B U+29A72 # <cjk> [2000] [Unicode3.1] Private: U+F8D6 0xFC6A U+29DDB # <cjk> [2000] [Unicode3.1] Private: U+F8D7 0xFC6B U+29E3D # <cjk> [2000] [Unicode3.1] Private: U+F8D8 0xFC78 U+29E15 # <cjk> [2000] [Unicode3.1] Private: U+F8D9 0xFC7A U+29E8A # <cjk> [2000] [Unicode3.1] Private: U+F8DA 0xFC7C U+29E49 # <cjk> [2000] [Unicode3.1] Private: U+F8DB 0xFC87 U+29EC4 # <cjk> [2000] [Unicode3.1] Private: U+F8DC 0xFC8D U+29EE9 # <cjk> [2000] [Unicode3.1] Private: U+F8DD 0xFC90 U+29EDB # <cjk> [2000] [Unicode3.1] Private: U+F8DE 0xFCA3 U+29FCE # <cjk> [2000] [Unicode3.1] Private: U+F8DF 0xFCA7 U+2A02F # <cjk> [2000] [Unicode3.1] Private: U+F8E0 0xFCA9 U+2A01A # <cjk> [2000] [Unicode3.1] Private: U+F8E1 0xFCB0 U+2A0F9 # <cjk> [2000] [Unicode3.1] Private: U+F8E2 0xFCB3 U+2A082 # <cjk> [2000] [Unicode3.1] Private: U+F8E3 0xFCD1 U+22218 # <cjk> [2000] [Unicode3.1] Private: U+F8E4 0xFCD6 U+2A38C # <cjk> [2000] [Unicode3.1] Private: U+F8E5 0xFCD8 U+2A437 # <cjk> [2000] [Unicode3.1] Private: U+F8E6 0xFCEC U+2A5F1 # <cjk> [2000] [Unicode3.1] Private: U+F8E7 0xFCEE U+2A602 # <cjk> [2000] [Unicode3.1] Private: U+F8E8 0xFCF0 U+2A61A # <cjk> [2000] [Unicode3.1] Private: U+F8E9 0xFCF4 U+2A6B2 # <cjk> [2000] [Unicode3.1] Private: U+F8EA
JISの漢字で、Unicode の CJK Ext B と対応づけられているものは、どんな字で Unicode 番号は何番か、 以下に3枚のPNG画像に分けて、表示している。
3枚に分けているのは便宜上で、深い意味はない。 画像のファイルサイズは最初の2枚が60KB程度、最後の1枚が30KB程度。 フォントのスムージングをしているせいもあって、かなりサイズが大きいが、 我慢してほしい。参考までに、これをGIFで作れば90KBを超える。
画像の内容について。
Unicode のコードポイントの番号のあとに、1種類または2種類のグリフがある。
最初(左側)に表示されるものは、日本語フォント Y.OzFont4
ファイル名 YOzFont4.TTF
による表示である。このフォントは、
Y.Oz Vox
から無料で入手でき、上記の303コードポイントを網羅している。
(フォント名は上記のように全角英数字である。半角英数字ではないので注意。)
その右に、異なるグリフが赤で表示されている場合、それは、
中国語フォント Simsun (Founder Extended)
ファイル名 SURSONG.TTF
による表示。このフォントは、Office Proofing Tools 2002 に付属していた。
右側に赤のグリフがない場所は、 中国語フォント Simsun (Founder Extended) ではサポートしていないコードポイント (日本独特の文字など)か、または、コードポイントは持っていても、 グリフのデータが空っぽの場合(いわばフォント内の「予約領域」)である。
二種類のグリフの間に多少の不一致がある場合(U+208B9, U+21706 など)、 慣用的な(一般に認められている)字形の揺れ、または、 日本と中国での字形の違い、または、 どちらかの間違い、といったいくつかの可能性がある。
以下には、次の例のようなHTMLコードがある。
<strong>U+2000B</strong> 𠀋
これは U+2000B の文字を、参照している。 もしシステムに、この文字を表示できるフォントがあって、 かつ、ブラウザにそのフォントを使う能力があれば(言い換えれば、BMP外の文字を参照できるなら)、 それは、対応する文字として表示されるはずだ。
U+2000B 𠀋 | U+2123D 𡈽 | U+2131B 𡌛 | U+2146E 𡑮 | U+218BD 𡢽 | U+20B9F 𠮟 |
U+216B4 𡚴 | U+21E34 𡸴 | U+231C4 𣇄 | U+235C4 𣗄 | U+2373F 𣜿 | U+23763 𣝣 |
U+23CFE 𣳾 | U+247F1 𤟱 | U+2548E 𥒎 | U+2550E 𥔎 | U+25771 𥝱 | U+259C4 𥧄 |
U+25DA1 𥶡 | U+26AFF 𦫿 | U+26E40 𦹀 | U+270F4 𧃴 | U+27684 𧚄 | U+28277 𨉷 |
U+283CD 𨏍 | U+2A190 𪆐 | U+20089 𠂉 | U+200A2 𠂢 | U+200A4 𠂤 | U+201A2 𠆢 |
U+20213 𠈓 | U+2032B 𠌫 | U+20381 𠎁 | U+20371 𠍱 | U+203F9 𠏹 | U+2044A 𠑊 |
U+20509 𠔉 | U+205D6 𠗖 | U+20628 𠘨 | U+2074F 𠝏 | U+20807 𠠇 | U+2083A 𠠺 |
U+208B9 𠢹 | U+2097C 𠥼 | U+2099D 𠦝 | U+20AD3 𠫓 | U+20B1D 𠬝 | U+20D45 𠵅 |
U+20DE1 𠷡 | U+20E95 𠺕 | U+20E6D 𠹭 | U+20E64 𠹤 | U+20F5F 𠽟 | U+21201 𡈁 |
U+21255 𡉕 | U+2127B 𡉻 | U+21274 𡉴 | U+212E4 𡋤 | U+212D7 𡋗 | U+212FD 𡋽 |
U+21336 𡌶 | U+21344 𡍄 | U+213C4 𡏄 | U+2146D 𡑭 | U+215D7 𡗗 | U+26C29 𦰩 |
U+21647 𡙇 | U+21706 𡜆 | U+21742 𡝂 | U+219C3 𡧃 | U+21C56 𡱖 | U+21D2D 𡴭 |
U+21D45 𡵅 | U+21D78 𡵸 | U+21D62 𡵢 | U+21DA1 𡶡 | U+21D9C 𡶜 | U+21D92 𡶒 |
U+21DB7 𡶷 | U+21DE0 𡷠 | U+21E33 𡸳 | U+21F1E 𡼞 | U+21F76 𡽶 | U+21FFA 𡿺 |
U+2217B 𢅻 | U+2231E 𢌞 | U+223AD 𢎭 | U+226F3 𢛳 | U+2285B 𢡛 | U+228AB 𢢫 |
U+2298F 𢦏 | U+22AB8 𢪸 | U+22B4F 𢭏 | U+22B50 𢭐 | U+22B46 𢭆 | U+22C1D 𢰝 |
U+22BA6 𢮦 | U+22C24 𢰤 | U+22DE1 𢷡 | U+231C3 𣇃 | U+231F5 𣇵 | U+231B6 𣆶 |
U+23372 𣍲 | U+233D3 𣏓 | U+233D2 𣏒 | U+233D0 𣏐 | U+233E4 𣏤 | U+233D5 𣏕 |
U+233DA 𣏚 | U+233DF 𣏟 | U+2344A 𣑊 | U+23451 𣑑 | U+2344B 𣑋 | U+23465 𣑥 |
U+234E4 𣓤 | U+2355A 𣕚 | U+23594 𣖔 | U+23639 𣘹 | U+23647 𣙇 | U+23638 𣘸 |
U+2363A 𣘺 | U+2371C 𣜜 | U+2370C 𣜌 | U+23764 𣝤 | U+237FF 𣟿 | U+237E7 𣟧 |
U+23824 𣠤 | U+2383D 𣠽 | U+23A98 𣪘 | U+23C7F 𣱿 | U+23D00 𣴀 | U+23D40 𣵀 |
U+23DFA 𣷺 | U+23DF9 𣷹 | U+23DD3 𣷓 | U+23F7E 𣽾 | U+24096 𤂖 | U+24103 𤄃 |
U+241C6 𤇆 | U+241FE 𤇾 | U+243BC 𤎼 | U+24629 𤘩 | U+246A5 𤚥 | U+24896 𤢖 |
U+24A4D 𤩍 | U+24B56 𤭖 | U+24B6F 𤭯 | U+24C16 𤰖 | U+24D14 𤴔 | U+24E0E 𤸎 |
U+24E37 𤸷 | U+24E6A 𤹪 | U+24E8B 𤺋 | U+2504A 𥁊 | U+25055 𥁕 | U+25122 𥄢 |
U+251A9 𥆩 | U+251E5 𥇥 | U+251CD 𥇍 | U+2521E 𥈞 | U+2524C 𥉌 | U+2542E 𥐮 |
U+254D9 𥓙 | U+255A7 𥖧 | U+257A9 𥞩 | U+257B4 𥞴 | U+259D4 𥧔 | U+25AE4 𥫤 |
U+25AE3 𥫣 | U+25AF1 𥫱 | U+25BB2 𥮲 | U+25C4B 𥱋 | U+25C64 𥱤 | U+25E2E 𥸮 |
U+25E56 𥹖 | U+25E65 𥹥 | U+25E62 𥹢 | U+25ED8 𥻘 | U+25EC2 𥻂 | U+25EE8 𥻨 |
U+25F23 𥼣 | U+25F5C 𥽜 | U+25FE0 𥿠 | U+25FD4 𥿔 | U+2600C 𦀌 | U+25FFB 𥿻 |
U+26017 𦀗 | U+26060 𦁠 | U+260ED 𦃭 | U+26270 𦉰 | U+26286 𦊆 | U+2634C 𦍌 |
U+23D0E 𣴎 | U+26402 𦐂 | U+2667E 𦙾 | U+266B0 𦚰 | U+2671D 𦜝 | U+268DD 𦣝 |
U+268EA 𦣪 | U+26951 𦥑 | U+2696F 𦥯 | U+269DD 𦧝 | U+26A1E 𦨞 | U+26A58 𦩘 |
U+26A8C 𦪌 | U+26AB7 𦪷 | U+26C73 𦱳 | U+26CDD 𦳝 | U+26E65 𦹥 | U+26F94 𦾔 |
U+26FF8 𦿸 | U+26FF6 𦿶 | U+26FF7 𦿷 | U+2710D 𧄍 | U+27139 𧄹 | U+273DB 𧏛 |
U+273DA 𧏚 | U+273FE 𧏾 | U+27410 𧐐 | U+27449 𧑉 | U+27615 𧘕 | U+27614 𧘔 |
U+27631 𧘱 | U+27693 𧚓 | U+2770E 𧜎 | U+27723 𧜣 | U+27752 𧝒 | U+27985 𧦅 |
U+27A84 𧪄 | U+27BB3 𧮳 | U+27BBE 𧮾 | U+27BC7 𧯇 | U+27CB8 𧲸 | U+27DA0 𧶠 |
U+27E10 𧸐 | U+27FB7 𧾷 | U+2808A 𨂊 | U+280BB 𨂻 | U+28282 𨊂 | U+282F3 𨋳 |
U+2840C 𨐌 | U+28455 𨑕 | U+2856B 𨕫 | U+285C8 𨗈 | U+285C9 𨗉 | U+286D7 𨛗 |
U+286FA 𨛺 | U+28949 𨥉 | U+28946 𨥆 | U+2896B 𨥫 | U+28987 𨦇 | U+28988 𨦈 |
U+289BA 𨦺 | U+289BB 𨦻 | U+28A1E 𨨞 | U+28A29 𨨩 | U+28A71 𨩱 | U+28A43 𨩃 |
U+28A99 𨪙 | U+28ACD 𨫍 | U+28AE4 𨫤 | U+28ADD 𨫝 | U+28BC1 𨯁 | U+28BEF 𨯯 |
U+28D10 𨴐 | U+28D71 𨵱 | U+28DFB 𨷻 | U+28E1F 𨸟 | U+28E36 𨸶 | U+28E89 𨺉 |
U+28EEB 𨻫 | U+28F32 𨼲 | U+28FF8 𨿸 | U+292A0 𩊠 | U+292B1 𩊱 | U+29490 𩒐 |
U+295CF 𩗏 | U+2967F 𩙿 | U+296F0 𩛰 | U+29719 𩜙 | U+29750 𩝐 | U+298C6 𩣆 |
U+29A72 𩩲 | U+29DDB 𩷛 | U+29E3D 𩸽 | U+29E15 𩸕 | U+29E8A 𩺊 | U+29E49 𩹉 |
U+29EC4 𩻄 | U+29EE9 𩻩 | U+29EDB 𩻛 | U+29FCE 𩿎 | U+2A02F 𪀯 | U+2A01A 𪀚 |
U+2A0F9 𪃹 | U+2A082 𪂂 | U+22218 𢈘 | U+2A38C 𪎌 | U+2A437 𪐷 | U+2A5F1 𪗱 |
U+2A602 𪘂 | U+2A61A 𪘚 | U+2A6B2 𪚲 |
HAN NOM A/B と Sun-ExtA/B 。 このメモでは、 CJK Unified Ideographs Extension A/B を Ext A/B と略す。
2003年「Mozilla は CJK Ext B を扱える」では、 「現在、CJK Ext B を含んでいる Windows フォントは、 SimSun (Founder Extended)(ファイル名 SURSONG.TTF)だけ」と紹介した。 2004年には Y.OzFont もあったが、これは Ext B でもJIS第3~第4水準にあるもののみ収録している (「CJK Extension B上のJIS第3~第4水準の漢字303」)。
しかし、2005年以降、Ext A/B を網羅するフリーのフォントが公開された。
http://sourceforge.net/projects/vietunicode/
この VietUnicode は本来ベトナム語サポートの向上を目指すプロジェクトだが、 そこにあるフォントが優れ物。
注意: このフォントは、winvnkeyでも配布されているが、 そちらではインストール書庫になっているから、 VietUnicode にある単純なZIPの方が良い(下記「フォントリンクについての注意」参照)。
HAN NOM A は、CJK(漢字)統合2万字と部首のグリフに加えて、 拡張Aからの6572字を含む。 HAN NOM B は、拡張B(U+20000台)からの42,702字を含む。 hannomH.zip と hannom.zip がありますが、Hがつくのが高解像度フォントで、 上記AとBの2ファイル(TTF)が含まれる。 サイズは解凍後、計52.5MB に及ぶ。 Windowsでは、サロゲートを有効にしたWin 2000以降では対応。
SimSun (Founder Extended) と違ってフリーソフトウェア。 しかも、SimSun (Founder Extended) は Ext B を含んでいるといっても一部のみ収録だが、 こっちは網羅。Unicodeの漢字系は、拡張AとBMP(基本多言語面)外の拡張Bも含めて、 (ほぼ*)全収録してる(* このフォントの説明書にある文字数は、 Unicode 5.0の該当範囲の文字数データより数文字少ないが、 差の原因は未詳)。
グリフも結構良い。 例えば、BMPの漢字で Arial Unicode MS と比較したら、 Arial Unicode MSは肉太で、特に小さいサイズでは潰れやすいが…
Han Nom A/B はセリフ系で、ほっそり・すっきり。
SimSun (Founder Extended) にはないグリフも含めて Ext B を全収録。 例えば、U+25771 「のぎへん」に予定の予は、ジョと読んで日本特有の字 (万・億・兆・京・垓の上の数詞)のため中国語系の SimSun にないが、 Han Nom B には、しっかり収録されている。
HAN NOM AとBに共通なのは、ラテン文字や記号類。 漢字以外は充実していない。 AのみにあるのはBMPの漢字と、ひらがな・カタカナなど。
Sun-ExtA と Sun-ExtB も Ext A/B を網羅する。 こちらは本来、 中国語サポート関連だが、GB18030完全対応なのでグリフは Unicode 全体に渡る。 Sun-ExtA は BMPのラテン文字系を完全サポートしているほか、 アラビア文字などBMP内の非ラテン各種文字も収録、 その意味では HAN NOM A/B より重宝で、 Arial Unicode MS のフリーの代替として良いかもしれない。
HAN NOM A/B と…
…Sun-ExtA/B は…
…SimSun と似たセリフ系グリフだが、
SimSun にないコードポイントを多数収録している。
Arial Unicode MS は、公開当時は最強フォントだったが、
Ext B にも対応しないしフォントとしてもあまり美しくない(肉太のため文字が潰れやすい)。おまけに途中から有償になった。
Sun-ExtA/Bは、
中国語のフリーウェアに同梱されている。
海峰五笔 http://www.okuc.net/SunWb/
…が、
ネットワーク的に接続が速くないうえ、
フォント単体を配布しているわけでなくアプリ同梱で、
しかも非Unicode中国語インストーラのため一般ユーザには分かりにくいので、
フォントだけ取り出してミラーしておく。
上記の本家からアプリをダウンロードして、インストールしても FONTS フォルダに同じものが出てくる
(ただし下記「フォントリンクについての注意」参照)。
フリーウェア。
Sun-ExtA.ttf_Sun-ExtB.ttf.7z 13MB
もしベトナム語や中国語のアプリ同梱の形でインストールすると、場合によって、システムのフォントが変わってしまう。
アプリによっては、
導入したフォントをシステムフォントとして使えるようにインストール時にフォントリンクを更新するため。
この問題が心配な場合は、レジストリの
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows NT\CurrentVersion\FontLink\SystemLink
をエクスポートしておき、いざというときには書き戻せば良い。
(バックアップしてなくても、レジストリエディタ等で、Tahoma にないグリフの第一候補を MSGOTHIC.TTF にすれば、
日本語版のデフォと同じになる。REG_MULTI_SZなので、Windows 2000ではregedt32の方を使うこと)
TTFファイルを単純にFontsフォルダに入れれば、こういうややこしい問題は発生しない。