とつか町だより

アクセスカウンタ

zoom RSS IBM拡張文字

<<   作成日時 : 2007/05/09 01:48   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

かつて(Unicode以前)、Windowsで通常扱うことのできる日本語用の文字は、ほぼJIS X 0208(=JIS第1水準・第2水準漢字)に一致していた。例外が「NEC特殊文字」「IBM拡張文字」「NEC選定IBM拡張文字」であった。これらを含めた符号化文字集合が「Windows-31J」であり、符号化方式がいわゆるシフトJISである(正確には「Microsoft CP932」?)

このうち「NEC特殊文字」には丸付き数字など83文字が収録され、「IBM拡張文字」には360字と特殊文字28字が、「NEC選定IBM拡張文字」には漢字360字と特殊文字14字が「IBM拡張文字」と重複して収録されている。これらの文字は、NECや日本IBMが独自に定めた文字セットが元になっており、「草なぎ剛のナギ」「里見トンのトン」なども含まれている。その他、JISに入らなかった旧字体・異体字の類も多い。「ハシゴ高」や「内田百間のケン」が有名である。(IBM拡張文字については、元をたどればIBMの大型コンピュータで利用されていた2バイト文字セット(DBCS)のうち、JIS X 0208に収録されなかった文字を集めたもの、ということらしい)。これらの字は、ShiftJIS時代においては、Windows同士でしか情報交換のできない「機種依存文字」の一種とみなされていた。

ここでは記号類についてはさておいて、360の漢字がUnicodeでどう扱われたのかをまとめてみたものが下表。
UnicodeJIS X 0213字数
CJK統合漢字JIS X 0212を原規格として収録追加229A
未収録50B
他国(中国等)の規格を原規格として収録追加旧字体13C
それ以外16D
未収録18E
CJK互換漢字韓国の規格(KS X 1001)の互換領域追加旧字体2F
IBM拡張文字の互換領域(統合漢字)追加7G
未収録5H
IBM拡張文字の互換領域(互換漢字)追加旧字体7I
それ以外2J
未収録11K
※「旧字体」はJIS X 0213に追加された漢字のうち、常用漢字表の「康熙字典体別掲」および人名用漢字の許容字体(当時)への対応として追加されたもの。

上の表のうち、Unicodeの「CJK統合漢字(CJK Unified Ideographs)」に収録された326字(※A-E)は、Unicode時代においても、言わば大手を振って使っていける文字である。当初Unicodeに収録する漢字を決定するにあたっては、日本・中国・台湾・韓国の関係者がそれぞれの規格を持ち寄り、統合できる漢字は統合したわけであるが、この時、日本由来の原規格となったのが、JIS X 0208とJIS X 0212(補助漢字)である。補助漢字はそれまでのJIS漢字を補助する目的で1990年に制定されたが、実装に問題があるため広まらなかったマイナーな規格だ。IBM拡張文字に含まれる漢字360字のうち、279字がこの補助漢字に収録されていたため、Unicodeにもすんなりと収録されることになった。上表のAとBである。
一方、日本の規格には含まれていないが、他国(中国・台湾・韓国)の規格のいずれかに含まれていたため、Unicodeに収録されることになったのが上表C,D,Eの47字である。このうち13字は2000年に制定されたJIS X 0213で追加された旧字体である。ややこしいのは、上表Eの中にもいわゆる旧字体らしきものや、使用頻度の高い異体字が含まれていることだ。具体的には以下のような例がある。
UCPGlyph備考
U+6085JISでは「悦」に包摂
U+654EJISでは「教」に包摂
U+663BJISでは「昂」に包摂。Vistaで字形変更
U+6DF8JISでは「清」に包摂
U+9592内田百閒のケン。JISでは「間」に包摂
U+9751JISでは「青」に包摂
U+9AD9ハシゴ高。JISでは「高」に包摂
これらの字の組み合わせは、日本の漢字政策および文字コードの標準化においては、新旧の字体差というよりは、手書き文字(楷書体)を活字に写すときの字形・デザインの差と解釈すべきものである。ただ、Unicode制定時の原規格となった他国の規格で別のコードが割り当てられていたため、制定当初のルール(原規格分離原則)にしたがってUnicodeでも別のコードが振られた。結果として日本の漢字政策・標準化政策と異なる結果となってしまったわけであるが、Unicodeが世間の標準となっていくにしたがって、これらの異体字も「パソコンで使える文字」という位置づけにシフトしていくものと思われる。

「昂(U+6602)」と「昻(U+663B)」の歴史は興味深い。1978年にJISが初めて漢字文字集合(JIS C 6226-1978、後のJIS X 0208-1978)を制定したとき、25区23点に収録された文字は、規格票では「日+卭」と印刷されていた。一方、IBMのホストコンピュータで使われていた漢字セットには、「日+卬」が収録されていたため、IBMやNECは自社のコンピュータに搭載する文字セットの中に、拡張文字として「日+卬」を収録した(IBM拡張漢字側のシフトJISコードは0xFAD0である)。ところが、1983年にJISが改正された。この改正で多くの文字の字形が変更され、大変な混乱を引き起こしたのだが、25区23点(シフトJISの0x8D56)の文字も、「日+卬」の形に変更された。一方、シフトJISの0xFAD0の文字に割り当てられたフォントも「日+卬」の形のままであったため、同じ字形の漢字が、JIS漢字にも拡張漢字にも収録されてしまう結果となった(ただし、実装されているフォントを見ると、全く同じというわけではなく、「日」の部分の横幅や交差部分の出っ張りなど、微妙にデザインが違っている。)
そしてこの状態のまま、Unicodeとのマッピングにおいては、「JIS X 0208の25区23点」は「U+6602」に、「IBMJapanのFAD0」は「U+663B」に、それぞれ対応するものとされた。UnicodeのCode Chartを見ると、「U+6602」には「日+卬」の字形が、「U+663B」には「日+卭」の字形が印刷されている。つまり「0xFAD0」の字形について、実際のフォントがUnicodeの規格書とずれている状態になっていた。
この状態は、Windows Vista発売時にMicrosoftが日本語フォントの中の多くの文字のデザインを変更した際、「U+663B(=0xFAD0)」に割り当てたグリフを「日+卭」に変更したことで解消された。この時のフォントの変更は、基本的にJIS X 0213:2004に対応したものなのだが、そのほかこういったUnicodeとの整合性確保など、細かい点の修正も行われているようだ。

〔主要なパソコンに実装されたフォントにおける「昂」の字形の推移〕
CP93278JIS83JIS対応Unicode対応
0x8D56日+卭日+卬日+卬
0xFAD0日+卬日+卬日+卭
※四半世紀の時を経て、文字が入れ替わった!

ここまでが「CJK統合漢字」に収録された正当なる漢字なのだが、ここから先、「CJK互換漢字」というのはUnicodeの中でも奥地というか、何が出てくるか分からない領域となってくる。
「CJK互換漢字」はUnicode5.0.0の段階でいうと「U+F900...U+FAFF」の範囲に収録されている(そのほか、「CJK互換漢字追加」というのが「U+2F800...2FA1F」の範囲にあるがここでは触れない)。「CJK互換漢字」領域には、「CJK統合漢字」に収録済の文字が重複して収録されているが、互換漢字領域のコードポイントは、他の規格との互換性を保つ(他の規格をいったんUnicodeに置き換えたあと、もう一度もとの規格に戻したときに、コードが当初と変わってしまわないようにする)ためだけにしか使わない・・・、というのがUnicodeの規定である。
CJK互換漢字(U+F900...U+FAFF)には5種類ある。具体的には下表のとおり。
範囲内容
U+F900...U+FA0BPronunciation variants from KS X 1001:1998
U+FA0C...U+FA0DDuplicate characters from Big5
U+FA0E...U+FA2DThe IBM 32 compatibility ideographs
U+FA30...U+FA6AJIS X 0213 compatibility ideographs
U+FA70...U+FAD9DPRK compatibility ideographs
最初のグループは、韓国の文字コード(KS X 1001)において、同じ漢字で発音が異なる場合、発音の種類に合わせて複数のコードを割り振っていることから、互換性のためUnicodeにもそれぞれ対応するコードを持っているもの。2つ目のグループは、台湾で広く使われる民間の文字コード「Big5」で、誤って重複登録されてしまったもの。4つ目は、日本の「JIS X 0213」に収録された旧字体・異体字などのうち、CJK統合漢字では一つのコードに包摂されているもの。5つ目は北朝鮮の文字コードに収録されている異体字の類で、やはりCJK統合漢字においては一つのコードに包摂されているもの。
ここまでで気になるのが、最初の表で「F」に分類した2文字。なぜか韓国の文字コードとの互換性のために作られたコードにマッピングされているが、本来の互換漢字の考え方からすればおかしいのではないかと思われる。今回のテーマからはずれるがついでに言うと、IBM拡張漢字以外にも、「JIS X 0213」に収録された旧字体の中に、この韓国の文字コードの互換領域にマッピングされている漢字がある。下表参照。

〔KS X 1001互換領域にマッピングされた日本の漢字〕
CP932UCPGlyphJIS X 0213互換
0xFAE0U+F9291-85-46U+6717
0xFBE9U+F9DC1-93-61U+9686
-U+F91D1-86-27U+6B04
-U+F9281-84-14U+5ECA
-U+F9361-91-47U+865C
-U+F9701-86-41U+6BBA
-U+F9D01-94-4U+985E
※UnicodeのCode Chartでこれらのコードポイントに旧字体に見える字が印刷されているのは、韓国製のフォントを元にしているからであり、このコードポイントが指す文字が本質的に旧字体であるわけではない(「韓国語での発音が統合漢字と違う」というのがこれらのコードポイントの本質であり、字体・字形が統合漢字と違うわけではない)。したがって上表のようなマッピングは本来おかしいのではないか。

さらに問題なのが3つ目のグループで、「IBMの32の互換漢字」という分かったような分からないような説明がついている。最初の表でいうとG-Kにあたる部分だ。Unicodeにおいて、収録する漢字を決定するのは、中国・台湾・日本・韓国(・香港・マカオ・ヴェトナム・シンガポール・北朝鮮・米国)各国からメンバーが出ているIRG(Ideographic Rapporteur Group)という組織なのだが、ここの32字だけは、IRGを通らずにもぐりこんでしまった漢字なのだそうだ。つまり、Unicodeに収録する漢字を決めたときに、これらの32字はどの国の代表からも提案されなかった。ところがUnicodeにこれらの漢字が収録されないと、日本のベンダは困る。公的な規格にはなったことはないが、現実的には多くのPCに実装され、使われてきた歴史があるからだ。そこで一計を案じた日本IBMが、カナダの現地法人を通じてUnicode Consortiumに32字の追加を直接提案し、この領域にねじ込んでしまったのだという。このことから、この32字をふざけて「カナダ漢字」と呼ぶこともあるらしい。(この辺は主に「文字の海、ビットの舟」からの受け売りです。)

〔これがカナダ漢字だ!〕
CP932UCPGlyphJIS X 0213統合漢字備考
0xFA90U+FA0E--統合漢字として扱うH
0xFA9BU+FA0F1-15-43-統合漢字として扱うG
0xFA9CU+FA101-15-55U+585A旧字体I
0xFAB1U+FA111-47-82-統合漢字として扱うG
0xFAD8U+FA12-U+6674-K
0xFAE8U+FA132-14-89-統合漢字として扱うG
0xFAEAU+FA141-85-90-統合漢字として扱うG
0xFB58U+FA151-87-58U+51DE-J
0xFB5EU+FA161-87-79U+732A旧字体(人名用漢字)I
0xFB75U+FA17-U+76CA-K
0xFB7DU+FA18-U+793C-K
0xFB7EU+FA191-89-28U+795E旧字体(人名用漢字)I
0xFB80U+FA1A1-89-29U+7965旧字体(人名用漢字)I
0xFB82U+FA1B1-89-33U+798F旧字体(人名用漢字)I
0xFB86U+FA1C-U+9756-K
0xFB89U+FA1D-U+7CBE-K
0xFB92U+FA1E-U+7FBD-K
0xFB9DU+FA1F1-91-26-統合漢字として扱うG
0xFB9FU+FA202-87-24U+8612-J
0xFBA0U+FA212-87-37-統合漢字として扱うG
0xFBA9U+FA221-92-14U+8AF8旧字体(人名用漢字)I
0xFBB1U+FA23--統合漢字として扱うH
0xFBB3U+FA242-89-78-統合漢字として扱うG
0xFBB4U+FA25-U+9038※旧字体は別K
0xFBB7U+FA261-92-74U+90FD旧字体(人名用漢字)I
0xFBD3U+FA27--統合漢字として扱うH
0xFBDAU+FA28--統合漢字として扱うH
0xFBEAU+FA29--統合漢字として扱うH
0xFBF6U+FA2A-U+98EF-K
0xFBF7U+FA2B-U+98FC-K
0xFBF9U+FA2C-U+9928-K
0xFC49U+FA2D-U+9DB4-K

まず面白いのは、「互換漢字」の領域なのに、実際には「統合漢字」として扱うことになっている文字の存在だ。これらの12文字について、規格表には"a unified CJK ideograph, not a compatibility ideograph, despite its name"と付記してある。出自の怪しい漢字であることがこのへんからも窺える。表のGとHがそれらに該当する。これらは互換性云々にとらわれず、自由に使ってよい漢字だということになる。残りのI,J,Kは文字通りの互換漢字で、そのうちの一部は常用漢字表に別掲された康熙字典体であり、人名用漢字である。
つぶさに見ていくと、「﨑」や「﨟」は、それぞれ「崎」「臈」というデザインの違いしかないと思われる統合漢字があるのにもかかわらず、互換漢字とされていない一方で、「蘒」は「蘒」と大きな字体の差がある(亀と龜は通常包摂されない)のにもかかわらず、互換漢字とされてしまっているなど、不自然な点も多い。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
IBM拡張文字 とつか町だより/BIGLOBEウェブリブログ
文字サイズ:       閉じる