「字体化け」考 (2)


字体化けと地名の関係について考えようと思ったんですが、ここで考えようとしている「字体化け」という言葉が、きちんと読んでくださる方にも伝わっているのか不安になってきたので、ちょっとこれについて詳しく書いておきます。


「字体化け」とはどのような現象か

前回のエントリで朝日新聞記事――より正確に言うと記事データベースサービスのG-Searchのテキストを引用しましたが、その冒頭に以下のような文言がありました。

(以下の文章で○葛は(勹の中がヒ)の葛を、●葛は(勹の中がL+人)の葛を表す。これらは、使用する環境で表示される文字の形が異なるため、このような表記とします。)


この部分は、もちろん朝日新聞の紙面にはなかったもの。つまり元々紙に印刷されていた記事をコンピューターでデータ化した途端に必要になった文言で、これこそが「字体化け」という現象が存在することを知らせてくれるものと言えましょう。ここで問題になっている「葛」の字は以下のような形です。



左右の文字は字体の違いがありますが、JIS X 0213では同じ符号位置をもちます(そしてJIS X 0208でもシフトJISでも、あるいはUnicodeでも)。だからこそ符号位置だけでは違いを表せずに、「勹の中がヒ」とか「勹の中がL+人」とか説明が必要になるわけです。同じ符号位置なのにも関わらず、「勹の中がヒ」とするフォントと、「勹の中がL+人」がある。前者のフォントをインストールしたマシンで「勹の中がヒ」の「葛」を入力しても、後者のフォントをインストールしたマシンと情報交換すれば「勹の中がL+人」の「葛」に変わります。これが「字体化け」です。では、どうしてこんなことになったのでしょう?

文字コード規格は、どのように文字を規定しているか

まずこの文字は、文字コード規格でどのように規定されているでしょうか。以下はJIS X 0208:1997(97JIS)「附属書6(規定)漢字の分類及び配列」(p.74)から(右端の「78」についている丸はぼくのメモなので気にしないでください)。



左端の漢字が例示字体で、その上にあるのが区点位置。つまり「勹の中がヒ」が掲げられて、これに19区75点という区点位置が与えられていることがわかる。しかし、ここで掲げられている例示字体はあくまで「例示」にすぎません。これについて規格票は以下のように説明しています。

ここで示す例示字体、部首、画数、音訓などは、一般に用いられている漢字とこの規格でビット組合せを規定する図形文字との対応を示し、文字の同定を容易にするためだけに用いるのであって、漢字の字体・字形、部首、画数、音訓などに対して、何らの制限をするものでもなく、また、いかなる基準を与えるものでもない。(附属書6、p.61)


つまりあくまで「例示」であり、「基準」ではないと。実際、文字コード規格では字体の違いのある複数の文字が、同一の符号位置に包摂されることがあります。この包摂について、JIS X 0208は「4. 定義」において以下のように定めています。

w) 包摂(Unification)複数の字体を区別せずに、それらに同一の区点位置を与えることをいう。

  • 備考 図形文字は図形概念によるものであるので、異なる文字であっても図形概念として区別が困難なものは、この規格では、字体の包摂に準じて同一区点位置を与えることがある。


この包摂を定めた部分が包摂規準とよばれるもの。つまりある区点位置にどんな文字が包摂されるのかは、これを見なければならない。ここではJIS X 0213を対象とするので、こっちの包摂規準を見てみましょう。ちなみにJIS X 0213JIS X 0208と上位互換の関係にあるので、JIS X 0208の19区75点は、単純に1面19区75点と読み替えられます*1。以下はJIS X 0213:2000(2000JIS)「6.6.3.2 漢字の字体の包摂規準の詳細」のうち、p.47からの引用。


つまり、JIS X 0213では「勹の中がヒ」の字形と「勹の中がL+人」の字形は同じ字として包摂され、同一の面区点を与えられているわけです。
さて、上に掲げたのはあくまでJIS X 0213の初版、すなわち2000JISです。ではこれを改正した2004JISで、どのように変えられたか。じつは包摂規準はまったく変わっていません。つまり1面19区75点は、改正によっても本質的な意味では「変更されていない」ということになる。

ん? おかしいですね。ではどうしてここで問題にしている「字体化け」などという現象が発生してしまったのでしょう? じつは1ヵ所だけ2004JISで変更された部分があるのです。それが例示字体。一番上の図に戻って、2000JISでは左側の字体が例示されていたところが、2004JISになって右側の字体が例示されるよう変更されたのです。つまり、1面19区75点について2000JISと2004JISの違いは、例示字体だけということなのです。

実装から見た例示字体の規範性

さて、ここまでは規格の問題です。4月21日のエントリで「文字コードを語るときは規格と実装を峻別すべき」というようなことを書きましたが、まさにこの問題でも同じことが当てはまります。この2つをゴッチャにすると、まるでゴルディアスの結び目のように誰にもほどけなくなってしまう。

「例示字体の規範性」という言葉があります。これは実装者サイドの言葉と考えられます。上述したように本来規格では規範性をまったく意図しなかったはずの例示字体が、実装する側に規範性をもって受け取られ、一人歩きしはじめることをいいます。ぼくはこの現象が表面化したのは、JIS X 0208:1990(90JIS)のあたりだったと考えています。

90JISの改正時に、文字フォント開発・普及センターによって作られた平成明朝が例示字体に採用されました。この平成明朝は各フォントベンダーの協業により制作されたことが当事者である澤田善彦氏のエッセイ平成フォント誕生物語によって分かります。そして、特定のフォントベンダーによらないという平成フォントの性格ゆえに、これが「タイプフェスデザインのよりどころ」となり、さらにこれを採用するJIS X 0208の例示字体が規範性をもつに至ったのではないか。実際、JIS X 0213の改正を審議した2001年度新JCS委員会の席上でも、あるメーカー側委員から「90JISで平成明朝が例示字体に採用されてから、だいぶ各社で字体が統一されるようになった」という趣旨の発言があったと記憶します(議事録をたんねんに辿れば出てくるはずですが、今はそこまでしません)。

ここで取り上げた1面19区75点も同じ理屈です。規格本来の立場では「勹の中がヒ」の字形と「勹の中がL+人」の字形のどちらでも割り当てて構わない。しかし実装者は「どちらでもかまわない」では困るわけです。なぜならクレームに対応するのは実装者であって規格制定者ではありません。そこで「よりどころ」が必要とされるわけで、これまでは胸を張って「JISにありますから」という理屈で「勹の中がヒ」の字形を実装してきたというわけです。

2004JISと例示字体の規範性

しかし、この言葉が実装サイドのものであったのは2000JISまでです。2004年の改正にあたって最大のミッションは、JISを国語施策(具体的には国語審議会答申である表外漢字字体表)に対応させるというものでした。この目的を果たすために、例示字体の規範性を逆手にとり、例示字体を変えることで実装を変えようという荒技に打って出ました。2004JISの改正規格票の解説では、以下のように書きます。すこし長くなりますが、そのまま引用しましょう。

2.11 例示字形の規範性 この解説の3.1.4及び3.1.5で述べるとおり,この規格の2000年版が採用していた例示字形と表外漢字字体表が示した字形との間にデザイン差とされる程度の違いのある字が幾つかあった。これらのうち大部分は,この規格が採用する包摂規準に照らしても同一の文字と認められる程度の違いであった。これらの字の扱いの検討に当たって,符号表に示される例示字形の規範性が議論になった。

符号化文字集合の規格は,通常,規格が規定する符号化文字と表示印刷に用いられる字形とを区別し,具体的な字形設計は規定範囲外であるとする。この規格も,符号表に具体的な字形を示しているが,実装が符号表に例示されたものと同一の字形を用いることを要求していない。この意味で,この規格に限らず符号化文字集合の規格が示す字形は,規範であることを意図していない。

また,この規格は,包摂によって複数の字体を区別せずに一つの面区点位置を与えている場合がある。その面区点位置に対する例示字形は,包摂される複数の字体のうちの一つに基づいているが,この字体も例示であって,他の字体よりも推奨されるものではない。この意味で,例示字形の字体も,何ら規範であることを意図していない。

しかし,実際には,符号化文字集合の規格票が掲載する符号表は,情報処理システム及び機器の開発及び選定に当たって,あたかもそれが規範であるかのように扱われることがある。すなわち,開発者は,機器の開発に当たって規格票に示された字体・字形にできる限り近づけようとすることがあるし,利用者は,規格票に示された字体・字形にできる限り近い機器を選定しようとすることがある。

今回の改正では,以上のような状況に配慮し,仮に符号表の例示字形が何らかの意味で規範であるかのように扱われた場合にも,表外漢字字体表との食い違いによる漢字使用の混乱が生じることがないよう,最大限の注意を払った。

  • 備考 これは,規格票の例示字形に規範性をもたせる意図ではない。この規格の利用者は,規格票の用いる例示字体・例示字形を,いかなる意味であれ規範と考えるべきでない。

(pp.47-48)


例示字体は規範ではないけれど、万が一規範にされても大丈夫なように例示字体に表外漢字字体表の印刷標準字体と同じものを採用した、というわけです。この結果、混乱が発生することは当然予測されます。ではこの混乱について2004JIS解説は何と言っているでしょうか。

符号化文字集合の例示字体を変更することによって,過去の例示字体変更時に生じたものと同様な混乱が生じる可能性は否定できない。実際,こうした混乱を予測し心配する例示字体変更への反対意見も多々寄せられた。しかし,今回の例示字体の変更は,国語施策として明確に示された方針に基づく変更であって,今後一般の社会生活において用いられる表外漢字の字体の多くが答申字体に移行することを期待した変更である。

この改正によって起こり得る一時的な混乱は,社会全般における文字使用が国語施策として示された字体へ移行するための避けて通ることのできない過程であって,過去の特定の符号化文字集合規格の改正に伴って引き起こされた混乱とは全く異質のものであることに留意されたい。(p.35)


こうした改正があったればこそ、マイクロソフトWindows VistaにおいてMSフォントのタイプフェイスデザインを2004JIS例示字体にもとづいたものに変更したというわけです。

最後にぼくの考えを書きます。ぼく自身はこういうことは文字コード規格がすべきではないと考えます。「文字コードを変えればコンピュータの文字も変えられる」という考えは間違っています。文字コード規格はあくまで包摂の範囲と符号位置のビット組合せを規定するものです。一方で表外漢字字体表は単一の字体を規定しています。したがって本来文字コード規格の文字と表外漢字字体表の文字は、一対一対応にはなり得ません。もしもそれをしたいなら、国語施策の字体と符号位置の対応を定めた附属書を追加するか、国語施策にもとづくフォント用の新たなグリフ規格を作るべきだったと考えます。……もはや死んだ子の年を数えるようなものですが。

以上、「字体化け」について、なるべく原資料に即しつつ述べてみました。

*1:JIS X 0213規格票ではページ数の節約のため、内包されるJIS X 0208部分は省略されています。1面19区75点の文字の示し方について、わざわざJIS X 0208を引用したのは、そういう理由からです。