Wikipedia · einfach zusammengefasst · Stand
American Standard Code for Information Interchange
Der American Standard Code for Information Interchange (ASCII, alternativ US-ASCII, ausgesprochen [ˈæski], deutsch „Amerikanischer Standard-Code für den …
Inhalt5 Abschnitte
Grundidee und Umfang
ASCII (American Standard Code for Information Interchange, auch US-ASCII) ist eine 7-Bit-Zeichenkodierung für den Informationsaustausch. Sie ist die US-Variante von ISO 646 und wurde zur Grundlage späterer Kodierungen mit mehr Bits. Da jedes der 7 Bit zwei Werte annehmen kann, gibt es 2^7 = 128 Bitmuster. Diese lassen sich als Zahlen von 0 bis 127 beziehungsweise von 00_hex bis 7F_hex lesen.
ASCII definiert 128 Positionen: 33 nicht druckbare Steuerzeichen und 95 darauf folgende druckbare Zeichen, beginnend mit dem Leerzeichen. Die druckbaren Zeichen enthalten die Groß- und Kleinbuchstaben des lateinischen Alphabets, die zehn indisch-arabischen Ziffern sowie Satz-, Wort- und weitere Sonderzeichen. Der Zeichenvorrat entspricht weitgehend einer englischen Schreibmaschinen- oder Tastaturbelegung. Text wird in Computern und anderen elektronischen Geräten häufig als ASCII oder in einer dazu abwärtskompatiblen Kodierung wie ISO 8859 oder Unicode gespeichert.
Zeichenbereiche und Codes
Die Codes 00_hex bis 1F_hex, also die ersten 32 Positionen, sind Steuerzeichen. Sie stellen keine Schriftzeichen dar, sondern dienten besonders zur Steuerung von Geräten wie Druckern. Beispiele sind LF (Linefeed, Zeilenvorschub), CR (Carriage Return, Wagenrücklauf), HT (Horizontal Tabulator) und BEL (Glocke). Steuerzeichen umfassen außerdem Protokollzeichen wie EOT für Übertragungsende und ACK für Bestätigung sowie Trennzeichen.
20_hex steht für SP, das Leerzeichen. Die Positionen 21_hex bis 7E_hex enthalten die druckbaren Zeichen. Beispielsweise hat A den Dezimalcode 65, den Hexadezimalcode 41 und das Bitmuster (0)100 0001; Z hat 90, 5A und (0)101 1010. Die Ziffern liegen bei 30_hex bis 39_hex, Großbuchstaben bei 41_hex bis 5A_hex und Kleinbuchstaben bei 61_hex bis 7A_hex.
Nicht enthalten sind etwa deutsche Umlaute sowie typografisch korrekte Gedankenstriche und Anführungszeichen. ASCII war für Informationsaustausch, nicht für Drucksatz gedacht. 7F_hex heißt DEL (Löschzeichen): Bei Lochstreifen oder Lochkarten konnten bereits gelochte Zeichen nur durch Auslochen aller sieben Markierungen überschrieben werden. 00_hex (NUL) trat unter anderem in ungelochten Bereichen am Anfang oder Ende eines Lochstreifens auf. Deshalb gehörten ursprünglich nur 126 Zeichen zum eigentlichen ASCII; den Bitmustern 0 und 127 entsprachen keine Zeichencodes.
Entwicklung und Einsatz
ASCII wurde am 17. Juni 1963 von der American Standards Association als ASA X3.4-1963 gebilligt; diese erste Fassung enthielt noch keine Kleinbuchstaben. Eine 1965 genehmigte Fassung wurde nicht veröffentlicht und daher nicht verwendet. 1968 wurde die gültige Fassung festgelegt. Die letzte im Artikel genannte Aktualisierung ist ANSI X3.4-1986. ASCII entstand im Umfeld von Fernschreibern und wurde zunächst unter anderem für den Teletype ASR33 eingesetzt. Vorläufer waren Morsecode sowie Baudot- und Murray-Code; der Murray-Code verwendete 5 Bit.
In der frühen Computertechnik wurde ASCII zum Standard für Schriftzeichen. Viele Terminals wie das VT100 und Drucker wurden mit ASCII angesteuert. Eine wichtige inkompatible Alternative ist EBCDIC, eine 8-Bit-Kodierung, die IBM parallel für das System/360 entwickelte. Dort ist das Alphabet auf drei getrennte Codebereiche verteilt. Präsident Lyndon B. Johnson stützte ASCII 1968 durch die Anordnung, ihn in Regierungsbüros zu verwenden.
Nationale Varianten und 8-Bit-Erweiterungen
Das bei ASCII unbenutzte achte Bit kann als Paritätsbit zur Fehlererkennung oder für Steueraufgaben dienen. Meist wurde es zur Erweiterung auf 8-Bit-Codes genutzt. Solche ASCII-kompatiblen Erweiterungen behalten die Codes 0 bis 127 bei und verwenden den Bereich darüber für weitere Zeichen.
ISO 646 beziehungsweise das Internationale Alphabet 5 (IA5) wurde 1963 auf ASCII-Basis normiert. Die Referenzversion ISO 646-IRV stimmt bis auf eine Position mit ASCII überein. Für nationale Zeichen durften 12 Positionen umdefiniert werden: #$@[]^`{|}~. Dadurch können nicht alle Varianten gleichzeitig dargestellt werden. In Programmiersprachen führte dies zu Ersatzkombinationen, sogenannten Digraphen: In Pascal stehen (* und *) für geschweifte Klammern {}, in C <% und %>. In der Sowjetunion entstand KOI7 für kyrillische Zeichen.
Zu den 8-Bit-Erweiterungen gehören Codepage 437 für englisches MS-DOS auf dem IBM-PC und Codepage 850, die seit MS-DOS 3.3 in deutschen Installationen Standard ist. ISO 8859-1 ist für westeuropäische Sprachen bestimmt und wurde in Deutschland als DIN 66303 übernommen. Deutschsprachige Windows-Versionen außerhalb des DOS-Fensters nutzen Windows-1252, das auf ISO 8859-1 aufbaut. Deshalb können deutsche Umlaute falsch erscheinen, wenn Dateien unter DOS erstellt und unter Windows betrachtet werden.
Unicode, UTF-8 und Textformatierung
Ein Byte pro Zeichen reicht nicht aus, um die Zeichen aller menschlichen Schriftkulturen gleichzeitig abzubilden. Daher gab und gibt es viele spezialisierte Kodierungen. Feste Längen verwenden pro Zeichen stets gleich viele Bytes; bei kompatiblen Single Byte Character Sets (SBCS) ist dies meist ein Byte. Beispiele sind ISO 8859, DOS- und Windows-Codepages, MacRoman und KOI8-R. Ostasiatische feste Kodierungen benötigen zwei oder mehr Bytes pro Zeichen und sind dann nicht mehr ASCII-kompatibel.
Kodierungen variabler Länge speichern die Zeichen 0 bis 127 in einem Byte, andere Zeichen jedoch mit mehreren Bytes über 127. Beispiele sind UTF-8 und GB 18030 für Unicode, außerdem Big5, EUC und GB für ostasiatische Sprachen.
Unicode ist in seinem Zeichenvorrat identisch mit ISO 10646. Er verwendet bis zu 32 Bit pro Zeichen, könnte damit über vier Milliarden Zeichen unterscheiden, ist aber auf etwa eine Million erlaubte Codepoints beschränkt. Er kann alle bislang von Menschen verwendeten Schriftzeichen darstellen, sofern sie in den Unicode-Standard aufgenommen wurden. UTF-8 ist eine zu ASCII abwärtskompatible 8-Bit-Kodierung von Unicode; ein Zeichen belegt ein bis vier 8-Bit-Wörter. UTF-8 ist unter vielen Betriebssystemen Standard, etwa bei macOS und einigen Linux-Distributionen, und mehr als 90 % der Websites werden in UTF-8 erstellt.
ASCII enthält nur wenige allgemein verwendete Formatierungszeichen. Zeilenenden werden typischerweise durch CR oder LF markiert: DOS und Windows verwenden meist CR und LF nacheinander, ältere Apple- und Commodore-Rechner nur CR, Unix-artige und Amiga-Systeme nur LF. Für weitergehende Textformatierung werden heute eher Auszeichnungssprachen wie HTML verwendet.