エンジニア、クリエイターのための派遣求人情報ラボラトリー
キャリア・ラボ IT TOP > IT Columns > 文字コードで世界に出る~さらば!文字化け~ > 第16回
IT Columns 【文字コードで世界に出る~さらば!文字化け~】
同じ字形のシステム外字で混乱は起きるか?
16

 ここ数回、Windowsが備える3種類のシステム外字の内、①や㈱などの「NEC特殊文字」と「髙」や「彅」などの「IBM拡張文字」の入力方法やそれらを使うことよって起こるトラブル事例などを紹介してきました。Windowsにはもう1つ、「NEC選定IBM拡張文字」と呼ばれるシステム外字が備わっています。
  今回はこの「NEC選定IBM拡張文字」に関わる、ちょっと不思議な話をしましょう。

第3のシステム外字「NEC選定IBM拡張文字」を復習する

 本連載の第12回で説明した通り、「NEC選定IBM拡張文字」の名称はNECが「JIS漢字」を拡張する外字として「IBM拡張文字」をPC-9801シリーズに採用しようとした際に、

  ・パソコンの設計上の違いから同じコード領域に割り当てることができなかったため、
   別のコード領域に収録
  ・Ⅰ~Ⅹ・№・℡・㈱・∵の14字は既に「NEC特殊文字」に含まれていたため、除外
したことに由来しています。

 NEC選定IBM拡張文字の中身はIBM拡張文字に含まれている記号や漢字からⅠ~Ⅹの10個のローマ数字大文字と№・℡・㈱・∵の4個の記号を除いたもので、具体的にはⅰ~ⅹの10個のローマ数字小文字、¬・¦・'・"の4個の記号、「纊」「褜」「鍈」~「鶴」「鸙」「黑」の360個の漢字からなります(図1)。

NEC選定IBM拡張文字の内訳 NEC選定IBM拡張文字の内訳
【図1】
NEC選定IBM拡張文字の内訳

検索時に混乱しないの?

 別の言い方をすると、Ⅰ~Ⅹの10個のローマ数字大文字や「纊」「褜」「鍈」~「鶴」「鸙」「黑」などの漢字はIBM拡張文字とNEC選定IBM拡張文字の双方に含まれていることとなります。
 ここで「同じ字形の漢字が2箇所にあると、検索や並べ替え時などに混乱をきたすのではないだろうか?」といった疑問が沸きます。たとえば、「高」のナベブタの下がはしご状の字形になっている「髙」字がIBM拡張文字とNEC選定IBM拡張文字に含まれています。ワープロ文書にこの字を入力する際にはMS-IMEの「文字一覧」機能を用いてIBM拡張文字に含まれている方の「髙」字を選択入力したのに、あとで文字列を検索する際にはNEC選定IBM拡張文字に含まれている方の「髙」字を指定すると、入力されているハズの字が検索されないといったトラブルが起きそうな気がします。

 論より証拠――実際にやってみましょう。
 まず、IBM拡張文字の「髙」字を入力します。MS-IMEのIMEパッドの「文字一覧」機能を呼び出して、上部の「文字種の選択」欄で「漢字3」を選択したうえで、その末尾近くに配置されている「髙」字をクリックします(図2)。シフトJISコードでFBFCにあたる位置にあります。

IBM拡張文字の「髙」字を入力する IBM拡張文字の「髙」字を入力する
【図2】
IBM拡張文字の「髙」字を入力する

 引き続き、NEC選定IBM拡張文字の「髙」字を入力します。「文字一覧」部の「文字種の選択」欄で「漢字2」を選択したうえで、その末尾近くに配置されている「髙」字をクリックします(図3)。こちらのシフトJISコードはEEE0です。

NEC選定IBM拡張文字の「髙」字を入力する NEC選定IBM拡張文字の「髙」字を入力する
【図3】
NEC選定IBM拡張文字の「髙」字を入力する

 どちらも同じ「髙」という字形ですが、最初はIBM拡張文字の漢字を、2番目はNEC選定IBM拡張文字の漢字を選択して入力しました。
 Wordの「検索」機能を呼び出して、その「検索する文字列」欄にMS-IMEの文字一覧機能を用いてIBM拡張文字の「髙」字を入力したら、「見つかったすべての項目を強調表示する」チェックボックスをONにしたうえで「次を検索」をクリックします(図4)。

すべての「髙」字が検索される! すべての「髙」字が検索される!
【図4】
すべての「髙」字が検索される!

 すると、最初に入力したIBM拡張文字の「髙」字だけでなく、2番目に入力したNEC選定IBM拡張文字の「髙」字も反転表示となります。IBM拡張文字の「髙」字が一致とみなされるのは当然ですが、なぜか、NEC選定IBM拡張文字の「高」字までも一致とみなされたわけです。

両方のシステム外字が検索される理由

 IBM拡張文字の「髙」字とNEC選定IBM拡張文字の「髙」字がまったく同じ字であるかのように検索されたのには、ちゃんと理由があります。
 それは、NEC選定IBM拡張文字に含まれている文字を入力しようとすると、自動的・強制的にIBM拡張文字のコード領域に含まれている同じ字形の文字が入力される仕組みとなっているからです。

 ファイルの内容を16進表示できるバイナリーエディタを用いて、確かめてみましょう。まず、Windows添付の「メモ帳」を用いて、先ほどと同じような手順で、1行目にIBM拡張文字の「髙」字を、2行目にNEC選定IBM拡張文字の「髙」字を入力したら、適当な名前を付けて保存します(図5)。

テキストファイルに2種類の「髙」字を入力 テキストファイルに2種類の「髙」字を入力
【図5】
テキストファイルに2種類の「髙」字を入力

 続いて、バイナリーエディタ(ここではc.mos氏作の「BZ」を利用)を起動して、いま作成・保存したテキストファイルを開いてみます(図6)。

2種類の「髙」字のコードを確認 2種類の「髙」字のコードを確認
【図6】
2種類の「髙」字のコードを確認

 2箇所に「FB FC」という表示が見えます。これはIBM拡張文字の中の「髙」字のシフトJISコードにあたります。このように、2行目にはNEC選定IBM拡張文字の「髙」字を入力したにも関わらず、自動的・強制的にIBM拡張文字に含まれている方の「髙」字が入力される仕組みとなっているのです。

 ちなみに、IBM拡張文字に含まれている記号の内、Ⅰ~Ⅹのローマ数字大文字と№・℡・㈱・∵の記号はNEC特殊文字にも含まれています(前掲の図1)。

 これらの記号についてはNEC特殊文字に含まれている方の文字が自動的に入力される仕組みとなっています(∵記号だけは1990年の改訂時にJIS漢字コードに追加収録されたため、JIS記号の文字が入力されます)ので、検索時に「あるハズの記号が見つからない!」といったトラブルになることはありません。

 文字コードの役割を考えると、同じ字形の文字が2箇所(字によっては3箇所)に配置されていること自体、あまりあってはならないことですが、Windowsにはそれによって生じるであろうトラブルをうまく回避する仕組みが備わっているのです。

ページトップ
フジスタッフホールディングスグループのサイト
オフィス系人材サービスキャリア・ラボ 人材派遣 | 転職 | ITエンジニア | CAD派遣 | 新卒・第二新卒 | ワーキングマザー
ファクトリー系人材サービスジョブデパ 求人情報 | エンジニア
その他人材サービス:人材紹介 | 旅行 求人 | メンタルヘルス | キャリアサポート | 障害者支援
その他サービス:ネットショッピング | タイムレコーダー販売 | 広告デザイン | ITソリューション | 大型ビジョン放送 | 保険相談