ASCII wurde ursprünglich als 7-Bit-Code konzipiert. Dies geschah lange bevor 8-Bit-Bytes allgegenwärtig wurden, und sogar in den 1990er Jahren konnte man Software finden, die davon ausging, dass sie das 8. Bit jedes Textbytes für ihre eigenen Zwecke verwenden konnte ("nicht 8-Bit-Clean"). Heutzutage wird es als 8-Bit-Codierung betrachtet, bei der die Bytes 0x80 bis 0xFF keine definierte Bedeutung haben, aber das ist ein Retcon .
Es gibt Dutzende von Textcodierungen, die das 8. Bit verwenden. Sie können als ASCII-kompatibel oder nicht ASCII-kompatibel und mit fester oder variabler Breite klassifiziert werden. ASCII-kompatibel bedeutet, dass einzelne Bytes mit Werten von 0x00 bis 0x7F unabhängig vom Kontext dieselben Zeichen codieren wie in ASCII. Sie möchten nichts mit einer nicht ASCII-kompatiblen Textcodierung zu tun haben, wenn Sie dies möglicherweise vermeiden können. naive Programme, die ASCII erwarten, neigen dazu, sie auf katastrophale, oft sicherheitsrelevante Weise falsch zu interpretieren. Sie sind heutzutage so veraltet, dass (zum Beispiel) HTML5 ihre Verwendung im öffentlichen Web verbietet, mit der unglücklichen Ausnahme von UTF-16 . Ich werde nicht mehr über sie sprechen.
Eine Codierung mit fester Breite bedeutet, wie es sich anhört: Alle Zeichen werden mit der gleichen Anzahl von Bytes codiert. Um ASCII-kompatibel zu sein, muss eine Festcodierung alle Zeichen mit nur einem Byte codieren, sodass sie nicht mehr als 256 Zeichen enthalten darf. Die heutzutage am häufigsten verwendete Codierung ist Windows-1252 , eine Erweiterung von ISO 8859-1 .
Es gibt heutzutage nur eine ASCII-kompatible Codierung mit variabler Breite, die es zu kennen gilt, aber sie ist sehr wichtig: UTF-8 , die den gesamten Unicode in eine ASCII-kompatible Codierung packt. Sie möchten dies wirklich verwenden, wenn Sie es verwalten können.
Abschließend nimmt "ASCII" heutzutage seine praktische Definition von Unicode, nicht von seinem ursprünglichen Standard (ANSI X3.4-1968), da es historisch gesehen mehrere Dutzend Variationen des ASCII-Repertoires mit 127 Zeichen gab - zum Beispiel einige davon Die Interpunktion kann durch Buchstaben mit Akzent ersetzt werden, um die Übertragung von französischem Text zu erleichtern. Heutzutage sind alle diese Variationen veraltet, und wenn Leute "ASCII" sagen, bedeuten sie, dass die Bytes mit den Werten 0x00 bis 0x7F Unicode-Codepunkte U + 0000 bis U + 007F codieren. Dies wird Ihnen wahrscheinlich nur wichtig sein, wenn Sie jemals einen technischen Standard schreiben.
Wenn Sie sich für die Geschichte von ASCII und die vorangegangenen Codierungen interessieren, beginnen Sie mit dem Artikel "The Evolution of Character Codes, 1874-1968" (Samizdat-Kopie unter http://falsedoor.com/doc/ascii_evolution-of- zeichencodes.pdf ) und dann seine Referenzen verfolgen (von denen viele online nicht verfügbar sind und selbst beim Zugang zu einer Universitätsbibliothek schwer zu finden sein können, muss ich leider sagen).