回答:
実際、ASCIIはもともと7ビットコードとして考えられていました。これは、8ビットバイトが広く普及する前に行われ、1990年代に入っても、テキストの各バイトの8番目のビットを独自の目的に使用できる(「8ビットではない」)と想定するソフトウェアを見つけることができました。今日、人々はそれを8ビットのコーディングと考えています。0x80から0xFFまでのバイトには意味が定義されていませんが、それはretconです。
8番目のビットを利用するテキストエンコーディングは数十あります。それらは、ASCII互換かどうか、および固定幅または可変幅に分類できます。ASCII互換とは、コンテキストに関係なく、 0x00から0x7Fまでの値を持つシングルバイトがASCIIと同じ文字をエンコードすることを意味します。回避できる可能性がある場合は、非ASCII互換のテキストエンコーディングとは何の関係もありません。ASCIIを期待する素朴なプログラムは、壊滅的で、しばしばセキュリティを壊す方法でそれらを誤解する傾向があります。それらは最近廃止されたため、(たとえば)HTML5は、残念なことにUTF-16を除いて、パブリックWebでの使用を禁止しています。私はそれらについてこれ以上話すつもりはありません。
固定幅エンコーディングとは、それがどのように聞こえるかを意味します。すべての文字は、同じバイト数を使用してエンコードされます。ASCII互換であるためには、fixed-withエンコーディングは1バイトのみを使用してすべての文字をエンコードする必要があるため、256文字を超えることはできません。現在最も一般的なそのようなエンコードは、ISO 8859-1の拡張であるWindows-1252です。
今日知っておく価値のある可変幅のASCII互換エンコーディングは1つしかありませんが、これは非常に重要です。UTF-8は、すべてのUnicodeをASCII互換エンコーディングにパックします。あなたがそれを管理することができるなら、あなたは本当にこれを使いたいです。
最後の注記として、「ASCII」は今日、その実際の定義を元の標準(ANSI X3.4-1968)ではなくUnicodeから採用しています。これまで、ASCII 127文字のレパートリーには数十のバリエーションがありました。句読点は、フランス語のテキストの伝達を容易にするためにアクセント付き文字に置き換えられる場合があります。現在、これらのバリエーションはすべて陳腐化しており、人々が「ASCII」と言うとき、値0x00から0x7FまでのバイトがUnicodeコードポイントU + 0000からU + 007Fをエンコードすることを意味します。これはおそらく、技術基準を作成していることに気づいた場合にのみ問題になります。
ASCIIの歴史とその前のエンコーディングに興味がある場合は、「文字コードの進化、1874-1968」(http://falsedoor.com/doc/ascii_evolution-of-の samizdatコピー)から始めてください。 character-codes.pdf)次に、その参照を追跡します(その多くはオンラインで利用できず、大学の図書館にアクセスしても見つけにくい場合があります。残念ですが)。
元のASCIIテーブルは7ビットでエンコードされているため、128文字です。
現在、ほとんどの読者/編集者は、8ビットでエンコードされ、256文字(enjoy、Ä、Œ、é、èなどのヨーロッパ言語に役立つその他の文字を含む)を楽しむ「拡張」ASCIIテーブル(ISO 8859-1から)を使用しています。数学的なグリフおよびその他の記号として)。
UTF-8は、基本的なASCIIテーブルと同じエンコーディングを使用していますが(意味が0x41
あるAは、の両方のコードで)、それは「ラテン文字拡張A」ブロックについて同じ符号を共有しません。これにより、アラカルトやピニャータなどの奇妙な文字が表示されることがあります。
ASCIIエンコードは7ビットですが、実際には、ASCIIでエンコードされた文字は7ビットのグループに格納されません。代わりに、1つのASCIIがバイトに格納され、MSBは通常0に設定されます(はい、ASCIIでは無駄になります)。
これを確認するには、テキストエディターでASCII文字セットの文字列を入力し、エンコードをASCIIに設定して、バイナリ/ 16進数を表示します。
余談ですが、(厳密に)ASCIIエンコーディングの使用は一般的ではなくなり、UTF-8になりました(これは上記のMSBを浪費しません -実際、MSBが1の場合、コードポイントが複数のバイトでエンコードされていることを示します)。
元のASCIIコードは、0〜127の番号が付けられた128の異なる文字を提供しました。8ビットバイトは共通のストレージ要素であるため、ASCIIは7ビットと同義です。しかし、7ビットのコードは8ビットのコードより前に作成されました。ASCIIは、情報交換用のアメリカ標準コードの略です。初期のインターネットメールシステムでは、7ビットのASCIIコードしかサポートしていませんでした。これは、プログラムとマルチメディアファイルをサックシステムで実行できるためです。これらのシステムは8ビットのバイトを使用しますが、MIME、UUcoding、BinHexなどのコーディング方法を使用して7ビット形式に変換する必要があります。これは、8ビットが7ビット文字に変換されたことを意味し、エンコードするためにバイトが追加されます。