機種依存文字
表示しようとしている文字がフォントセットの中に用意されていない。 データ自体と表示設定とで文字符号化方式(エンコーディング)が違う。 システム固有の登録文字を他システムで表示しようとしている。
「〓(ゲタ)」「・(中黒)」「□(四角、豆腐)」等の文字に置換されて表示された場合というのは、大抵の場合、符号化方式は一致しているものの、フォント集合を表示側のシステムが用意していないときである。
別の文字として表示(文字化け)された場合というのは、符号化方式が違うか、システム固有の登録文字を他システムで表示しようとしているときである。
この中で、フォント集合を表示側のシステムが用意していない場合と、特定のシステムに固有の登録文字を他システムで表示しようとしている場合が「機種依存」であるとされる。
使用するフォントの相違によって、テキストデータ中の特定の文字が意図しない字形として表示されたり、全く表示・印刷できなくなる場合もある。
かつてオペレーティングシステムごとに標準規格の未定義コードポイントなどに独自の文字を定義していたが、オープン化によって共通の文字集合を利用するようになると既存のテキストの一部の文字が全く表示・印刷できない事態が発生する。たとえばUnicodeに対応した結果、標準規格になかった文字がUnicodeに収録されず、表示・印刷ともできなくなる。
標準規格の私用領域(いわゆる外字の領域)を用いて特定の処理系やアプリケーションのための文字や字形を表現したため、異なるシステムでは異なる文字として表示される。たとえば、マイクロソフトの韓国語版WindowsではUHC(英語版)からUnicodeへのマッピングに際して古ハングルなどの字形を私用領域に割り当てていたが、私用領域を別の用途に使っているシステムでは正しく表示できない。
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等、一部の機種に限られてしまうという実情がある(この中には常用漢字の一部も含まれる)。
日本語の文字コード体系は、JIS C 6226-1978によって第1水準漢字、第2水準漢字、非漢字として規格化されたが、これらは実際の文書作成の際に必要となる記号や組文字を十分に組み込んだものではなかった。そして、コード空間の空き領域(09区-15区)は「一時的・局所的に文字を割り当てて使用しても構わない」自由領域とされた(この規定は1997年のJIS X 0208-1997から削除)。
そのため、コンピュータメーカー各社はそれぞれ独自に拡張した記号類をこの領域に収録し、外字領域として扱われることになった。また、ユーザーもこの領域に独自に文字を登録(外字登録)できることが一般的になった。コンピュータの機種によって違う文字が表示されるコード領域となった。
代表格は、
丸囲み数字(○は0-50、●は0-20、◎は1-10)
ローマ数字(ラテン文字大文字小文字共通1-12, 大文字のみ50, 100, 500, 1000, 5000, 1万, 5万, 10万)
以下の理由により2000年代以降では、機種依存文字について、「どんな機種でも表示できるとは言えない文字」、もしくは「異機種間のデータ交換の際に文字化けする確率が高い文字」という程度の定義しか出来ない。
Microsoft WindowsにおいてShift_JISに独自拡張された文字(Microsoftコードページ932)は、全てUnicodeに登録されている。
現在、日本で使われる符号化文字集合の公的規格は以下のように何種類も存在する。またそれぞれの規格が改正された場合には有効とされる規格は最新版だけであるが、過去の版の規格に基づいたシステムも存在する。 JIS X 0201 JIS X 0208:1997 JIS X 0212:1990 JIS X 0213:2004 JIS X 0221:2001(≒ ISO/IEC 10646-1:2000 ≒ Unicode 3.