IIJでは広報誌「IIJ.news」を隔月で発行しています。本blogエントリは、IIJ.news連載コラム「インターネット・トリビア」を転載したものです。IIJ.newsはご希望者へ郵送でお送りしています。また、IIJ WebではPDF版をご覧頂けます

IIJ.news vol.140 もくじ

iijnews138

  • ぷろろーぐ「仕事と私生活」 鈴木 幸一
  • Topics wizSafe 安全をあたりまえに
    • セキュリティ事業 wizSafe 始動
    • セキュリティを支える組織と人材
    • IoT ボットネットからの DDoS 攻撃
    • IIJ SOC リポート
  • 人と空気とインターネット AIの進化と人間の未来
  • Technical Now
    • IIJ セキュアWEBゲートウェイサービス セキュアブラウジングオプション
    • IIJ GIO VWシリーズ 事例紹介
  • インターネット・トリビア コンピュータと日本語表示 ※この記事で掲載
  • グローバル・トレンド レバラン休暇明けの転職と人事の力量

インターネット・トリビア: コンピュータと日本語表示

スマートフォンのアプリや WEB を見ていて、「日本語の文章なのに、文字の形に違和感を感じた」経験はないでしょうか?

今回は、そんな話にも通じる「コンピュータと日本語」について紹介したいと思います。

日本語には、ひらがな・カタカナ・漢字など多くの文字があります。特に漢字には、文字の一部が微妙に違う「異体字」もあり、日常的に使われている漢字だけでもかなりの数にのぼります。コンピュータで日本語を扱うためには、まず、扱うべき文字の種類を定める必要があります。これを「文字集合」と言い、日本では JIS(日本工業規格)により「JIS 第1水準」「JIS 第2水準」などの文字集合が定義されています。また、文字をコンピュータで取り扱うためには「文字コード」という番号を使います。文字コードの割り当て方を「符号化方式」といい「Shift_JIS」「EUC-JP」「ISO-2022-JP」などいくつか種類がありますが、いずれも JIS の文字集合を基本にしており、含まれる文字に違いはありません。

コンピュータに記録された文字を画面やプリンタで表示するために必要なのがフォントです。日本語には「明朝体」や「POP 体」と呼ばれる「書体(タイプフェイス)」があり、一定の様式に沿ってデザインされた文字を集めたものがフォントです。フォントに含まれる個々の文字を「字体(グリフ)」といい、日本語の場合 JIS の定義をもとにひとつのフォントあたり数千のグリフが収録されています。

コンピュータの文字表示は、フォントのなかから文字コードによって指定されたグリフを取り出し、順番に画面に表示することによって実現しています。

ここまでは日本語を前提として文字集合や符号化方式について言及してきましたが、世界に目を向けると英語や中国語、ヒンディー語など多種多様な言語があり、コンピュータでこれらの言語を扱うために、言語毎に文字集合や符号化方式が定義されています。しかし、取り扱う言語に合わせて処理を切り替える必要があり、複数の言語を混在させて使用するのは困難でした。

この不便を解消するため、多様な言語を統一的に扱うことを目的とした新しい規格がつくられました。それが「Unicode(ユニコード)」です。Unicode では言語毎に文字集合を定義するのではなく、世界中の言語で使われる文字を集めた文字集合を定義しています。また、多くの文字を取り扱うために「UTF-8」などいくつかの符号化方式を定義しました。Unicode 文字集合と符号化方式により、処理を切り替えることなく、複数の言語を混在させることが可能になったのです。

しかし、その一方で新たな問題も発生しました。文字数が多い中国語・日本語・韓国語は、Unicode 文字集合を定義する際、字体の似た文字に同じ文字コードを割り当てるという判断がなされたのです。文字コードが同じである以上、表示されるグリフも同一になります。しかし、これらの文字はもともと異なる文字ですので、書体によってはかなり見た目が違います。結局、Unicode を使っていても、それを表示する際には中国語用・日本語用・韓国語用と、それぞれのフォントを使って表示しなければ、期待する文字として表示されないという事態になってしまいました。

冒頭で紹介した「違和感のある文字」は、まさにこれによって引き起こされた現象です。Unicode で保存された日本語の文章を表示する際に、何らかの原因で中国語や韓国語用のフォントが適用された結果、日本語風ではない字形で表示されてしまったのです。

今回紹介したエピソードだけを見ると、Unicode は大変乱暴な規格だと感じるかもしれません。たしかにそのような側面もありますが、Unicode という規格が定められたことで、特に日本にフォーカスされたわけではない機器やソフトウェアでも、ある程度日本語が扱えるというメリットも生まれています。日本語を扱う人間としては複雑な気持ちです。