拡張
ASCII(extended
ASCII)またはhigh
ASCIIとは、標準の7
ビットASCIIコードに加えて、
8ビット以上の
文字コードを表す用語です。この用語は、
ASCII標準が128文字以上を含むように更新された、またはこの用語が単一の符号化方式を明確に示すという誤解を招く可能性があるため、批判されることがあります。
拡張の背景
普及している自然言語で使われる文字数は、
ASCIIコードの制限された範囲をはるかに超えています。そのため、これらの言語をコンピュータで処理するために、様々な拡張が行われてきました。
英語圏外のコンピュータ市場は、標準化団体が対応を検討するよりも早く拡大したため、
ASCIIとの互換性がない独自拡張が多数存在しました。
ASCIIは7
ビット符号ですが、多くのコンピュータはデータを
8ビットバイトで処理します。そのため、多くの拡張は各バイトの
8ビットすべてを利用し、追加で128の符号を使用しました。これにより、
ASCIIでは表現できない多くの言語を扱うことが可能になりました。しかし、これらの
8ビット拡張でも、すべての国の言語をカバーするには不十分で、多数のバリエーションが必要とされました。
独自拡張
特に大学では、非
EBCDICのメインフレームやミニコンピュータにおいて、さまざまな独自拡張が登場しました。コモドール社のマイクロコンピュータは、独自の非標準
ASCII(PETSCII)に多くのグラフィック記号を追加しました。IBMは、最初の
IBM PCと後続の機種で、異なる言語や文化に対応するために、
8ビット拡張
ASCIIコードを導入しました。IBMはこれらの文字集合を「コードページ」と呼び、独自に考案したものと他社が使用していたものに番号を割り当てました。そのため、文字集合はIBMのコードページ番号で示されることが多くなりました。
ASCII互換のコードページでは、下位128文字は標準のUS-
ASCIIの値を保持し、上位128文字で異なる文字集合が利用可能でした。例えば、北米市場で組み立てられたDOSコンピュータは、
フランス語、ドイツ語、その他のヨーロッパ言語に必要なアクセント文字や罫線素片を含む
コードページ437を使用していました。これにより、
英語と
フランス語の組み合わせは可能になりましたが、
英語とギリシャ語の組み合わせは不可能でした。
ディジタル・イクイップメント・コーポレーション(DEC)は、文字数を減らす代わりに文字とダイアクリティカルマークの組み合わせを増やした「多国語文字集合」を開発しました。これは、VT220などのDEC製
端末でサポートされました。
ISO 8859と独自拡張
最終的に、ISOは
8ビットASCII拡張の独自の集合をISO 8859としてリリースしました。最も有名なのは、ISOラテン1としても知られるISO 8859-1で、ほとんどの西ヨーロッパ言語をカバーしていました。東ヨーロッパ言語用のISO 8859-2やキリル文字用のISO 8859-5などのバリエーションも標準化されました。
ISO文字集合とコードページの注目すべき違いの一つは、
ASCII制御文字の上位
ビットをセットした値に対応する文字位置128から159が、ISO標準では明確に使用されず、未定義とされたことです。これらの位置は、独自拡張コードページでは印字可能な文字に使用され、ISO標準の統一性を損なうことがありました。
マイクロソフトは後に、ISO 8859-1との互換性を保ちながら、ISOが未使用にしていた範囲に文字を追加した上位集合であるコードページ1252を作成しました。コードページ1252は、
英語を含む西ヨーロッパ言語版の
Microsoft Windowsの標準
文字コードです。ISO 8859-1は、
X Window Systemやほとんどの
インターネット標準で広く使用されています。
アップルのMacintoshは、macOSでは現在
Unicodeをデフォルトの
文字コードとして使用していますが、
Classic Mac OSではMac OS Romanを使用していました。
文字集合の混乱
これらの
ASCII拡張は非常に多くのバリエーションがあるため、特定のテキストで使用されている文字集合を識別することが、テキストを正しく解釈するために不可欠です。ただし、最もよく使用される文字(
ASCIIの7
ビット符号位置にある文字)は、ほとんどすべての集合で共通です。そのため、文字集合の識別に失敗しても、英文を読むことは可能です。さらに、多くの
インターネット標準ではISO 8859-1が使用され、OS市場でトップシェアを誇るWindowsが使用するコードページ1252もISO 8859-1の上位集合であるため、ISO 8859-1が予告なしに使用されることが多いです。そのため、欧米ではISO 8859-1が使われている可能性が高く、これをデフォルトと仮定すると、多くの場合問題なく解釈できます。
多くのプロトコル、特に
電子メールとHTTPでは、通信内容の
文字コードはIANAが割り当てた
文字コード識別子でタグ付けする必要があります。
これらの問題を解決するために、
1991年に
Unicodeと呼ばれる提案がなされ、現在では広く受け入れられています。
Unicodeは1,114,112の符号位置を予約しており、現在101,000以上の文字を割り当てています。最初の256の符号はISO-8859-1と完全に一致し、96,000以上の符号位置は主に中国語、日本語、韓国語の文字に使用されています。