拡張ASCII
拡張ASCII(extended ASCIIもしくはhigh ASCII) は、他のものに加えて標準の7ビットASCIIを含み、8ビットかそれより大きい文字コードを表す用語である。この用語の使用は批判されることがある。ASCII標準が128個より多くの文字を含むように更新されたとか、この用語は単一の符号化方式を曖昧さなしに識別するというような (どちらも真実ではない) 誤解を招きかねないためである。
拡張の理由
編集普及している自然言語で使われる文字の数はASCIIコードの制限された範囲をはるかに超えるため、それらの言語の処理を助けるために多数の拡張が使われてきた。英語圏外でのコンピュータと通信機器の市場は標準化団体がそれらに対応する最善の方法を熟考する時間が与えられるよりはるかに前から歴史的に開かれていたため、ASCIIへの互換性がない独自拡張は多数存在する。
ASCIIは7ビット符号でありほとんどのコンピュータはデータを8ビットバイトで操作するので、多くの拡張は各バイトの8ビットすべてを使うことにより、追加で利用可能な128の符号を使用する。これは他の方法ではASCIIで容易に表現できない多くの言語を含む助けになるが、コンピュータが売られているすべての国の言語をカバーするにはまだ十分ではないため、これらの8ビット拡張でさえ多数の変種が必要だった。
独自拡張
編集非EBCDICメインフレームやミニコンには、とくに大学において各種の独自拡張が出現した。コモドールマイクロコンピュータは多くの図形記号を自社の非標準ASCII(PETSCII、1963年の最初のASCII標準に基づく)に追加した。IBMは異なる言語と文化のために、最初のIBM PCと以後に製造された機種で8ビット拡張ASCIIコードを導入した。IBMはそれらの文字集合をコードページと呼び、自社で発明したものと他社で発明され使用されていた多くのものの両方に番号を割り当てた。そのため、文字集合をそれらのIBMコードページ番号で示すことが非常によくある。ASCII互換コードページにおいては、下位128個の文字は標準US-ASCIIの値を保持しており、異なったページ(もしくは文字の集合)を上位128個の文字で利用できた。たとえば、北米市場で組み立てられたDOSコンピュータは、フランス語、ドイツ語、および他の少数のヨーロッパ言語で必要なアクセント文字に加え、いくつかの罫線素片を含むコードページ437を使っていた。より大きな文字集合は英語とフランス語(フランスのコンピュータは通常コードページ850を使うが)を組み合わせて書かれた文書の作成を可能にしたが、たとえば、英語とギリシア語の組み合わせは不可能である(これにはコードページ737が必要である)。
ディジタル・イクイップメント・コーポレーション (DEC) はISO 8859の草案に基づき、字数を減らす代わりに文字とダイアクリティカルマークの組み合わせを増やした "Multinational Character Set" を開発した。これは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およびほとんどのインターネット標準で広く使われている文字コードである。
AppleのMacintoshは、macOSの下では、現在Unicodeをデフォルトの文字コードとして使っている。Classic Mac OSの下では、Mac OS Romanを使っていた。
文字集合の混乱
編集これらのASCII拡張は非常に多くの変種を持つため、ある特定のテキストでどの集合が使われているか識別することは、テキストを正しく解釈するために必要である。しかしながら、もっともよく使われる文字 (ASCIIの7ビット符号位置にあるもの) はすべての集合で共通なので(拡張ASCII以外でもほとんどの文字集合で共通である)、文字集合の正しい識別に失敗しても英文は問題なく読める。さらに、多くのインターネット標準はISO 8859-1を使い、OSシェアトップのWindowsの使うコードページ1252もISO 8859-1の上位集合であるため、多くの場合ISO 8859-1が予告なしに使われている。このため何も情報がなかった場合欧米ではISO 8859-1が使われている可能性が高く、デフォルトでこれを仮定すると多くの場合うまくいく。
多くのプロトコル、もっとも重要なのは電子メールとHTTPにおいて、通信内容の文字コードはIANAが割り当てた文字コード識別子でタグ付けしなければならない。
Unicode
編集これらの問題の多くを解決するため1991年にUnicodeと呼ばれる提案がなされ、現在では広く受け入れられている。Unicodeは1,114,112 (= 220 + 216) 個の符号位置を予約しており、現在それらの符号位置の101,000個以上に文字を割り当てている。最初の256個の符号はISO-8859-1のものと正確に一致する。96,000個の符号位置の大多数は、現時点では、中国語、日本語および朝鮮語の文字に使われている。