文字化け入門

はじめに

文字化けって難しい。世の中に誤解も多い。まどわされぬよう気をつけながら文章を書いてみた。なぜかというと、書いてみたかったから。

以降、文字化けしそうな文字を理由とともに列挙する。ここに列挙した文字について対処しておけば(覚悟しておけば)、ひとまずは文字化けから解放されるはず(開き直れるはず)。でも、いろんな事情から、具体的に提示できなかった文字もある。どんな事情があるのかは、その都度、書いたつもり。

Unicode は、もう少し普及してから、改めて書き直そうと思う。

なお、ここでは、「Shift JIS のファイルを EUC-JP で読み込んじゃった」などの、その場限りの文字化けは扱わない。だって書くのが面倒だから。

ASCII から国際標準 ISO/IEC 646 へ

まずは ASCII から始まる。アメリカが独自に作った ASCII コードを世界中で使おうとしたとき、最初の文字化けが始まった。

ASCII を国際標準に格上げしたのが、ISO/IEC 646 だ。ここでは、以下の 11 文字について、各国ごとに異なる字を割り当てることを許している。つまり、国が変わると、文字化けしてしまう可能性がある

#$@[\]^`{|}

ただ、日本語が表示できる環境で、これらの文字が化けるということは考えにくい。日本人が日本語を書く限りは、あまり気にする必要もないと思う

また、以下の字の形は、オーバーライン(OVER LINE)だったり、波型(TILDE)だったりする。波型は上に寄ってたり寄ってなかったりする。ISO/ICE 646 では、デザインの差とみなしているらしい。つまり「オーバーラインも波型も同じ文字なんだよ」ということになっている。だから、どれが表示されても文句を言ってはいけない

~

「デザイン差」というのは、こういうこと。例えば「4」の字で、上の部分がくっついていようが離れていようが「4」の字であることには変わりがない、ということ。デザインが違っても同じ字なんだよ、ということ。

半角カナは文字化けしない

いわゆる「半角カナ」は、実は、まっとうな文字である。古くから JIS にあるし、途中で規格が変更されたりもしないし、実装も(漢字に比べれば圧倒的に)容易だ。

だから普通は文字化けはしない

ただし、インターネット上の電子メール(電子ニュース)の世界では、半角カナは駄目、という約束になっている。約束を破って無理に使うと、文字化けどころでは済まない可能性もある。だから電子メールでは、半角カナを使ってはいけない。

HTML などでは、特に半角カナが禁止されたりはしていないようだ。が、正しく表示されたとしても、フォントによっては恐ろしく読みづらいので、やはり使わないほうが良い。

1978 年、最初の JIS 漢字と機種依存文字

最初の JIS 第 1、第 2 水準漢字が制定されたのを受けて、パソコンやワープロが次々と発売される。

当然、どの製品も JIS に従っている。が、なにしろ当時のことなので、いろいろと不自由があった。文字の変形ができなかったり、位置の細かな調整ができなかったり、重ね打ちができなかったり、図形の描画ができなかったり、……。これらの問題を解決するため、パソコンやワープロは、それぞれ独自の機種依存文字を持つようになった。

また、一部のパソコンは、いわゆる「スーパーコンピュータ」の類の端末として使われることもあった。そうなると、スーパーコンピュータの側にある漢字が、パソコン側で表示できないというのは、ちょっと困る。こういう文字のうち利用頻度の高いものが、機種依存文字としてパソコンに取り込まれた。

こういった機種依存文字は、機械が変わると表示されない可能性がある使わないほうが良い。以降、代表的なものについて書く。

以下は、NEC 機種依存文字(13 区)。このうちの幾つかと同じ形の文字が、後で JIS に追加されたりするのだが、コード位置が違うので別の字と考えるのが良い。

字形一覧

※ 文字化けを恐れないならば、こちらを。NEC 機種依存文字(13 区)

以下は、NEC 選定 IBM 機種依存文字(89 区から 92 区)。ここにある漢字の字形はすべて、次で説明する「IBM 機種依存文字」と同一。でもコード位置は別なので、別の文字。

字形一覧

※ 文字化けを恐れないならば、こちらを。NEC 選定 IBM 機種依存文字(89 区から 92 区)

以下は、IBM 機種依存文字(115 区から 119 区)。

字形一覧

※ 文字化けを恐れないならば、こちらを。IBM 機種依存文字(115 区から 119 区)

ややこしい話をしておくと、最初のふたつ(NEC 機種依存文字と NEC 選定 IBM 機種依存文字)は、文字化けするものの、一応メールで送ることができる。これに対して、最後の IBM 機種依存文字は、半角カナと同様、メールで使ってはいけない文字なので、注意が必要。とはいえ、見た目からはどっちがどっちか判別できないので、結局のところ「メールでは使うな」ということになる。

説明のため NEC と IBM の社名を出したが、ほかの会社も、それぞれに頑張って機種依存文字を作った。でも、いずれも廃れてしまい、残っていない。残ってないので、ここではいちいち書かない。というか、書けない。

以下は、ウェブで見かけた情報。確からしい情報、大募集。

Macintosh とフォント依存文字

※私は Mac を持っていないので、細かいことはわからない。ここの文章は PostScript 関連に偏っている。画面表示についてはもっと別の事情があると思う。

Macintosh は、いろいろと新しいものを実現したが、その中に「フォントを自由に選べる」というのがある。

Mac の日本語のフォントも当然、JIS 第 1、第 2 水準に従って作られているわけだが、なぜだか JIS の隙間にいろんな文字が押し込んである。どんな文字が押し込められているかは、フォントの種類によって様々だ。

だから、フォントが変わると、表示される文字も変わってしまう

以下、Mac における代表的な文字集合の 2 種類について、文字化けの可能性のある字を提示する。どのフォントがどちらの種類に分類されるのかは、調べていない。ここにある 2 つの画像は Perl で PostScript ファイルを生成して、Distiller で PDF にして、画面に表示して取り込んだもの。

ひとつめの種類を以下に示す(隙間に意味はない)。2 バイト半角文字がたくさんある。どうやって普通の半角文字と区別するのか、私は知らない。TrueType 以前だったり、漢字 talk 6 の時代だったりのフォントは、こちらであることが多いように思う。

字形一覧

ふたつめの種類を以下に示す(隙間に意味はない)。TrueType 以降だったり、漢字 talk 7 の時代だったりのフォントは、こちらであることが多いように思う。

字形一覧

Macintosh の場合、機種依存文字ではない。フォントに依存しているだけだ。Windows と同じ字体のフォントをインストールすれば、Windows の文字を文字化けすることなく表示できる(ただし Shift JIS の範囲のみ、Unicode は別)。表示できるはず、できるんじゃないかな、できるといいなあ(Mac がないので試せない)。

Mac OS X 以降がどうなっているのか、ぜんぜん知らない。おそらくは、また別の事情があるのだと思う。

理屈から言うと、Windows にもフォント依存文字はある。でも、Microsoft がそれなりの基準を作っているらしく、主要な日本語フォントを使う限りは、文字化けは発生しないようだ(後述「Microsoft Windows の戦略」)。

1983 年、JIS と常用漢字と人名漢字

最初の JIS 第一、第二水準漢字(1978 年)が発表された後で、国から常用漢字(1981 年)なるものが出されたり、人名用漢字別表が改正(1981 年)されたりした。これを受けて JIS が改正される(1983 年)。

以下の 22 組について、字体が入れ替えられた。つまり、文字化けの可能性がある。これらの文字を使う場合、字体が変わるかもしれないことを覚悟すること

  1. 鯵・鰺
  2. 鴬・鶯
  3. 蛎・蠣
  4. 撹・攪
  5. 竃・竈
  6. 潅・灌
  7. 諌・諫
  8. 頚・頸
  9. 砿・礦
  10. 蕊・蘂
  11. 靭・靱
  12. 賎・賤
  13. 壷・壺
  14. 砺・礪
  15. 梼・檮
  16. 涛・濤
  17. 迩・邇
  18. 蝿・蠅
  19. 桧・檜
  20. 侭・儘
  21. 薮・藪
  22. 篭・籠

以下の 4 組について、追加と同時に入れ替えも行なわれた。追加されたのは左側の字体。新しいコード位置に置かれたのは右側の字体。これらも文字化けの可能性あり。どっちが表示されるかわからない。特に右側の字体(以前からあった字体)を使う場合、表示されない可能性も含めて、覚悟すること

文字の組のリスト

※ 文字化けを恐れないならば、こちらを。1983 年 追加と同時に入れ替えられた文字

多くの字で、字体が変更された。特に、以下の 29 字は、JIS 本人(?)も「矛盾する字体の整理・変更が行われて」いたと後になって認めている。これらの字も、どっちが出るかわからない字体が変わることを覚悟すること

  1. 唖(亞と亜)
  2. 焔(陷と陥 つくり)
  3. 鴎(區と区)
  4. 噛(齒と歯)
  5. 侠(狹と狭 つくり)
  6. 躯(區と区)
  7. 鹸(檢と検 つくり)
  8. 麹(麩と麸 へん)
  9. 屡(數と数 へん)
  10. 繍(肅と粛)
  11. 蒋(將と将)
  12. 醤(將と将)
  13. 蝉(單と単)
  14. 掻(騷と騒 つくり)
  15. 騨(單と単)
  16. 箪(單と単)
  17. 掴(國と国)
  18. 填(眞と真)
  19. 顛(眞と真)
  20. 祷(壽と寿)
  21. 涜(賣と売)
  22. 嚢(壤と壌 つくり、なべぶた除く)
  23. 溌(發と発)
  24. 醗(發と発)
  25. 頬(狹と狭 つくり)
  26. 麺(麩と麸 へん)
  27. 莱(狹と狭 つくり)
  28. 蝋(獵と猟 つくり)
  29. 攅(贊と賛)

以下の 39 の特殊文字と 32 の罫線素片も追加された。

まずは特殊文字。環境により表示されないことがあるので、使う場合は覚悟すること。いわゆる「機種依存文字」と同じ字体のものもあるが、コード位置が違うので別の字。ややこしい。

特殊文字一覧

※ 文字化けを恐れないならば、こちらを。1983 年 追加された文字(特殊文字)

続いて罫線素片。これも表示されないことがある使わないのがよい

罫線素片一覧

※ 文字化けを恐れないならば、こちらを。1983 年 追加された文字(罫線素片)

1990 年、人名漢字ふたたび

その後も人名用漢字別表は改正され、その結果、以下の 2 文字が JIS 第 1、第 2 水準に追加された(1990 年)。

うち 1 文字は単純に追加された。表示されないことがあるので、使う場合は覚悟すること

字形

※ 文字化けを恐れないならば、こちらを。1990 年 追加された文字(新しい字)

もう 1 文字は、以前から JIS 第 1、第 2 水準にあった字の異体字。追加されたのは右側。どっちが表示されるかわからないので、使う場合は覚悟すること。特に右側の字体を使う場合は、表示されない可能性も含めて、覚悟すること

文字の組

※ 文字化けを恐れないならば、こちらを。1990 年 追加された文字(異体字)

1990 年、補助漢字の登場

上の 2 文字が JIS 第 1、第 2 水準漢字に追加されたのと同じ年に、JIS 補助漢字が登場する。

JIS 補助漢字には弱点がいっぱいあったため、当時はまったく普及しなかった。

普及しなかったので、補助漢字のすべての文字は表示されない可能性がある。つまり、使わないほうがよい。以下に 6067 文字を全部列挙する。……のは難しいので、今後の課題ということにしてひとまず逃げる。

判別するための現実的な手法は Shift JIS 形式で保存してみること。

最近は、Unicode 対応のシステムとフォントがあれば(例えば Windows などでは)使うことができる。が、たいていの場合、ファイルに(Shift JIS 形式で)保存するとおかしなことになる。注意すること。

Microsoft Windows の戦略

Windows 3.1(1993 年)のとき、Microsoft 独自の基準(マイクロソフト標準キャラクタセット)が作られた。便利なのか、お節介なのかは、不明。大雑把には以下のとおり。

有り体に言うと、Windows を使う限り、ほとんどの文字化けを回避できる。

現実的視点から言えば、非常にうまくまとめていると思う。が、うまくでき過ぎていて、おまけに Windows が一挙に普及したものだから、文字化けを気にしない人が増えた。「Windows を使わないのが悪い」といった馬鹿な話も出てきた。多数派というのは本当に恐ろしい

Unicode がやってきた

そして Unicode がやってきた。これは、実質的に ISO/ICE 10646 と同一のもの。今後は Unicode が主流になる。まず間違いない。

Unicode なら文字化けはなくなる、といった楽観論もあるようだけど、嘘だ。問題は山積み。既存文字コードとの変換テーブル作成が既に破綻していること、アプリケーションの対応レベルにより合成文字の扱いが異なること、包摂基準が不明瞭であること、フォントの品質(正当性)の検証が事実上不可能であること、……。

Unicode は現在も成長中の規格で、頻繁に文字の追加が行なわれている。今のところ文字化けしていない Unicode 文字も、次の字が追加された瞬間に、どうなるかわからない。つまり、Unicode については、もうしばらく静観するのがよい

第 3、第 4 水準というのも、ある

あまり話題にならなかったが、JIS 第 3、第 4 水準漢字が制定された。これに含まれる文字はすべて、将来 Unicode に登録されることが約束されている。

主要な OS はすべて、Unicode 登録後に対応すると、表明している。つまり、Unicode への登録が終わるまでは、JIS 第 3、第 4 水準は、使うことができない。

よって、JIS 第 3、第 4 水準による文字化けは、現状では無視してよい。Unicode に登録されたなら、Unicode の問題として、あらためて考えるのがよい。

その他疑問点

NEC(PC98)は、独自の罫線文字を持っていたらしいが、詳細不明。句点位置がわかれば、もしかしたら加筆するかもしれない。

ウェブで検索すると、ギリシャ文字とロシア文字を機種依存文字に含めてたりするのだが、なぜだろう。たぶん単なる誤解だと思う。

携帯電話のことも書こうとしたが、思うにキリがなさそうなので、やめた。

参考文献

屁理屈太郎 日常の屁理屈に行く