皆さんがいつもアメーバで使っている㌧などの環境依存文字
機種依存文字(きしゅいそんもじ、きしゅいぞんもじ)または環境依存文字(かんきょういぞんもじ)とは、電子的に扱う文字データのうち、処理系(ソフトウェア およびハードウェア )によって違う文字に表示されたり、全く表示・印刷できなかったりするものの慣用的な総称である。JEF やJIPS 等のようなメインフレーム /汎用機用の符号化文字集合 については、文字コード 体系そのものが機種依存するという前提があるため、本項では扱わない。
不特定多数との情報通信 で機種依存文字を使用すると文字化け の原因にもなる。
機種依存文字に関する歴史[編集 ]
初期[編集 ]
日本語 の文字コード体系は、JIS C 6226-1978 によって第1水準漢字、第2水準漢字、非漢字として規格化されたが、これらは実際の文書作成の際に必要となる記号や組文字 を十分に組み込んだものではなかった。そして、コード空間の空き領域(09区-15区)は「一時的・局所的に文字を割り当てて使用しても構わない」自由領域とされた(この規定は1997年 のJIS X 0208-1997 から削除)。
そのため、コンピュータメーカー各社はそれぞれ独自に拡張した記号類をこの領域に収録し、外字 領域として扱われることになった。また、ユーザー もこの領域に独自に文字を登録(外字登録)できることが一般的になった。コンピュータの機種によって違う文字が表示されるコード領域となった。
問題の表面化[編集 ]
1986年 頃から主要なパソコン通信 サービスが開始されるようになった。多くのパソコン がホスト局に接続され、電子掲示板 や電子メール などで文章のやり取りが行われるようになると、特に問題となったのがPC-9800シリーズ とMacintosh ・DOS/V 間での表示の相違だった。このことから、これらのコードをパソコン通信等の世界では「機種依存文字」と呼ぶようになった。
また、当時PC-9800シリーズのシェア が多かったために、PC-9800(あるいはエプソン のPC-9800互換機 )シリーズでしか表示できない文字として「98文字」(キューハチ文字)と呼ぶようになった。
Macintosh が機種依存文字で不利な立場に立たされたのは、シェアの低さだけでなく、Microsoft Windows が1992年 という早い段階から Windows 標準システム外字に統一されたのに対して、Macintosh は二転三転を繰り返してきたことも指摘されている[1] 。
現在[編集 ]
現在では、文字表示はオペレーティングシステム (以下OS)の役割となっており、使用するフォント セットによって拡張文字の表示は変化するため、「機種依存文字」の呼称は正確性を失うものとなった。また、機種依存文字の代表格だった丸囲い数字 、ローマ数字 などは Unicode (ユニコード)に収録され規格内のコードとなった。
しかし、歴史的な経緯から、表示に関してフォントセットに依存する文字の総称として使用されることがある。ただし、同じOS上で複数の異なるフォントセットを使えるため、機種という言葉の意味は失われている。
なお、機種依存文字の定義があいまいになった現在においても、典型的な機種依存文字であると言えるのが、携帯電話 のインターネット 接続サービス(NTTドコモ のiモード など)対応電話機で使用される「携帯電話の絵文字 」である。これらの文字は Shift_JIS のユーザ拡張領域や Unicode の私的領域に登録されており、他の機種においては別の実装をされている可能性が著しく高いからである。
なお、上記の領域はCP932 においてユーザ拡張領域と定められているに過ぎず、JIS X 0208:1997においては拡張そのものが禁止されている。
機種依存文字の定義[編集 ]
1980年代[編集 ]
1980年代においては、以下の理由により、ベンダ定義文字 (各コンピュータメーカーが、公的規格には無い文字を独自に拡張して搭載した文字)が、機種依存文字であるという定義が成り立っていた。
- 日本語文字コードの公的規格はJIS X 0201 とJIS X 0208 だけだった。
- 各メーカーのパソコンごとに搭載されているフォントセットの文字集合がまちまちだった。
ただし、公的規格であっても、以下のような文字は、規格が普及・定着するまでは機種依存文字とされることがあった。
- JIS X 0208 第2水準
- 新JIS (JIS C 6226-1983) で追加もしくは字形が変更された文字
2000年代以降[編集 ]
以下の理由により2000年代 以降では、機種依存文字について、「どんな機種でも表示できるとは言えない文字」、もしくは「異機種間のデータ交換の際に文字化けする確率が高い文字」という程度の定義しか出来ない。
- Microsoft WindowsにおいてShift_JISに独自拡張された文字は全て Unicode に登録されている。
- 現在、日本で使われる符号化文字集合の公的規格は以下のように何種類も存在する。またそれぞれの規格が改正された場合には有効とされる規格は最新版だけであるが、過去の版の規格に基づいたシステムも存在する。
- JIS X 0201 .:51655
- JIS X 0208 :1997
- JIS X 0212 :1990
- JIS X 0213 :2004
- JIS X 0221 :2001(≒ ISO/IEC 10646 -1:2000 ≒ Unicode 3.0)
- 現在のほぼすべてのOSでは、フォントセットの切り替えによって、表示に使う文字集合を切り替えられる。
- 現在のほぼすべてのOSでは、さまざまな文字符号化方式 (エンコーディング)に対応している。
- Microsoft WindowsのShift_JISの独自拡張だったNEC特殊文字 は、現在ではJIS X 0213:2000において、同一面区点の位置に登録されている。また、iモードのShift_JIS においてはNEC特殊文字は Microsoft Windows の Shift_JIS と同様のコードポイントで利用可能である。
- JIS X 0213:2004の一部の文字などは公的規格の文字にもかかわらず、使える機種が Windows Vista 以降搭載のPC等、一部の機種に限られてしまうという実情がある(この中には常用漢字の一部も含まれる)。
機種依存などの理由による文字の誤表示の各ケース[編集 ]
文字が正しく表示できないことについては、次の二つの観点で語ることが出来る。
- どのように表示されたか
- 「〓(ゲタ )」「・(中黒 )」「□(四角 、豆腐)」等の文字に置換されて表示された。
- 全く異なる別の文字として表示(文字化け)された。
- なぜ表示出来なかったのか
- 表示しようとしている文字がフォントセットの中に用意されていない。
- データ自体と表示設定とで文字符号化方式 (エンコーディング)が違う。
- システム固有の登録文字を他システムで表示しようとしている。
「〓(ゲタ)」「・(中黒)」「□(四角、豆腐)」等の文字に置換されて表示された場合というのは、大抵の場合、符号化方式は一致しているものの、フォント集合を表示側のシステムが用意していない時である。
別の文字として表示(文字化け)された場合というのは、符号化方式が違うか、システム固有の登録文字を他システムで表示しようとしている時である。
この中で、フォント集合を表示側のシステムが用意していない場合と、特定のシステムに固有の登録文字を他システムで表示しようとしている場合が「機種依存」であるとされる。
詳細は「文字化け 」を参照
機種依存文字の将来[編集 ]
OSの内部コードで Unicode が採用されて以降、機種依存文字は解消されつつある。しかし、Unicode に対応していないソフトウェア、ウェブサイトは今でも多く、標準化にはしばらく時間がかかると推測される。
Unicode では漸進的に文字を追加しており、追加された時期が新しい場合、フォントが対応しておらず表示出来ないことが多い(各文字の追加された時期についてはUnicode一覧表 で確認できる)。また、基本多言語面 にない文字や合成が必要な文字はOSやアプリケーションがそれらに対応している必要があり、対応していない場合はそれらの文字を含むフォントがあっても表示できない。
使用するフォントに依存する場合[編集 ]
使用するフォント の相違によって、テキストデータ中の特定の文字が意図しない字形として表示されたり、全く表示・印刷できなくなる場合もある。
- かつてオペレーティングシステム ごとに標準規格の未定義コードポイントなどに独自の文字を定義していたが、オープン化によって共通の文字集合を利用するようになると既存のテキストの一部の文字が全く表示・印刷できない事態が発生する。たとえば Unicode に対応した結果、標準規格になかった文字が Unicode に収録されず、表示・印刷ともできなくなる。
- 標準規格の私用領域(いわゆる外字 の領域)を用いて特定の処理系やアプリケーションのための文字や字形を表現したため、異なるシステムでは異なる文字として表示される。たとえば、マイクロソフト の韓国語版Windows ではUHC から Unicode へのマッピングに際して古ハングル などの字形を私用領域 に割り当てていたが、私用領域を別の用途に使っているシステムでは正しく表示できない。
- 文字コード規格の改訂によって、例示字形があらためられたもの。たとえば、JIS X 0208 の第2次規格(1983年)では複数の異体字関係にある文字同士のコードポイントが入れ替えられた。またJIS X 0213 の第2次規格(2004年)では一部の文字の例示字形が印刷標準字体にあらためられた。いずれも、テキストデータとフォントの双方で前提とする規格を一致させなければ意図した表示にならない。
- フォント製造者の実装によって異なる字形が表示されるもの。例として円記号 問題がある。
使用するソフトウェアに依存する場合[編集 ]
使用するソフトウェアによって、同じフォントを使用しても特定の文字が意図しない字形として表示される場合がある。主に文字合成を必要とするものに見られ、例えばアイヌ語 のカタカナの1つ「ㇷ゚ 」などが挙げられる。
以上「ウィキペディア」より