Zum Inhalt springen

American Standard Code for Information Interchange

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 3. Oktober 2004 um 01:28 Uhr durch Stw (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

ASCII ist ein Akronym für "American Standard Code for Information Interchange" (dt.: Amerikanischer Standard-Code für den Informationsaustausch), der als ANSI-Standard X3.4 im Jahr 1968 eingeführt wurde. Als Vater des ASCII-Standards gilt Bob Bemer.

Er beschreibt einen Zeichensatz, der auf dem lateinischen Alphabet basiert, wie er im modernen Englisch und von Computern und anderen Kommunikationseinrichtungen zur Textdarstellung verwendet wird. Er beschreibt als Code (wie auch EBCDIC von IBM) die Zuordnung von digital dargestellten Ganzzahlen zu den in der normalen Schriftsprache geschriebenen Zeichen. Mit Hilfe des Codes können digitale Geräte codierte Informationsinhalte senden, empfangen und verarbeiten.

Geschichte

Die Buchstaben A, B und C als Sieben-Bit-Code
Schriftzeichen Dezimal Hexadezimal Binärzeichen
A 65 x41 (0)1000001
B 66 x42 (0)1000010
C 67 x43 (0)1000011
... ... ... ...

ASCII beschreibt einen Sieben-Bit-Code. Dieser Code verwendet binäre Ganzzahlen, die mit sieben binären Ziffern dargestellt werden (entspricht 0 bis 127), um Informationen darzustellen. Schon früh haben Computer mehr als 7 Bits, oft mindestens Acht-Bit-Zahlenworte, verwendet – das achte Bit kann für Fehlerkorrekturzwecke (Paritätsbit) auf den Kommunikationsleitungen oder für andere Steuerungsaufgaben verwendet werden.

Fortschritte in der Technik und die internationale Verbreitung erzeugten eine Reihe von Variationen und Erweiterungen des Codes, die nicht alle untereinander kompatibel sind und nicht für alle Systeme gleichermaßen verwendet werden können.

Zusammensetzung

ASCII-Zeichensatz inklusive nicht-druckbarer Zeichen
Code -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0- NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1- DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2- SP ! " # $ % & ' ( ) * + , - . /
3- 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4- @ A B C D E F G H I J K L M N O
5- P Q R S T U V W X Y Z [ \ ] ^ _
6- ` a b c d e f g h i j k l m n o
7- p q r s t u v w x y z { | } ~ DEL

Die ersten 32 Zeichencodes in ASCII sind für Steuerzeichen (control character) reserviert. Dies sind Zeichen, die keine Schriftzeichen darstellen, sondern die zur Steuerung von solchen Geräten dienen (oder dienten), die ASCII verwenden (etwa Drucker). Steuerzeichen sind beispielsweise der Wagenrücklauf für den Zeilenumbruch oder Bell (die Glocke); ihre Definition ist historisch begründet.

Code 0x20 (SP) ist das Leerzeichen (engl. space oder blank), welches in einem Text als Leer- und Trennzeichen zwischen Wörtern verwendet und auf der Tastatur durch die große breite Leertaste erzeugt wird. Die Codes 0x21 bis 0x7E sind alle druckbaren Zeichen, die sowohl Buchstaben, Ziffern und Satzzeichen (siehe Tabelle) enthalten. Code 0x7F (alle sieben Bits auf eins gesetzt) ist ein Sonderzeichen, welches auch als "Löschzeichen" bezeichnet wird (DEL). Der Code wurde früher wie ein Steuerzeichen verwendet, um auf Papierstreifen oder Lochmaschinen ein bereits gelochtes Zeichen nachträglich durch das Setzen aller Bits, d.h. durch Auslochen aller sieben Markierungen, löschen zu können.

Erweiterungen

ASCII enthält keine diakritischen Zeichen, die in vielen Sprachen auf der Basis des lateinischen Alphabets verwendet werden.

Der internationale Standard ISO 646 (1972) war der erste Versuch, dieses Problem anzugehen, was allerdings zu Kompatibilitätsproblemen führte. Er ist immer noch ein Sieben-Bit-Code und weil keine anderen Codes verfügbar waren wurden einige Codes in neuen Varianten verwendet.

So ist etwa der ASCII-Code 93 für die rechte eckige Klammer (]) in der deutschen Zeichensatz-Variante ISO 646-DE durch das große U mit Diärese (Umlaut) (Ü) und in der dänischen Variante ISO 646-DK durch das große A mit Ring (Krouzek) (Å) ersetzt. Bei der Programmierung mussten die eckigen Klammern durch die entsprechenden nationalen Sonderzeichen ersetzt werden.

Verschiedene Hersteller entwickelten eigene Acht-Bit-Codes. Der Codepage 437 genannte Code ist der am weitesten verbreitete, er kam auf dem IBM PC zur Anwendung.

Auch bei späteren Standards wie ISO 8859 wurden acht Bits verwendet. Dabei existieren mehrere Varianten, zum Beispiel ISO 8859-1 für die westeuropäischen Sprachen. Viele ältere Programme, die das achte Bit für eigene Zwecke verwendeten, konnten damit nicht umgehen. Sie wurden im Laufe der Zeit oft den neuen Erfordernissen angepasst.

Unicode (in seinem Zeichenvorat identisch mit ISO 10646) verwendet bis zu 32 Bit pro Zeichen und könnte somit über vier Milliarden verschiedene Zeichen unterscheiden; dies wird jedoch auf etwa 1 Million erlaubte Code-Werte eingeschränkt. Damit können alle bislang von Menschen verwendeten Schriftzeichen dargestellt werden, sofern sie denn in den Unicode-Standard aufgenommen wurden. UTF-8 ist eine Kodierung von Unicode, die mit der 8-bit-Architektur kompatibel ist. Sieben-Bit-Varianten müssen nicht mehr verwendet werden – dennoch kann Unicode auch in 7 Bit kodiert werden: UTF-7.

ASCII enthält nur wenige Zeichen, die allgemein verbindlich zur Formatierung oder Strukturierung von Text verwendet werden. Hierzu zählen insbesondere der Zeilenvorschub (Linefeed), der Wagenrücklauf (Carriage Return), der horizontale Tabulator, Form Feed und der vertikale Tabulator. Die Verwendung weiterer Zeichen zur Textformatierung ist bei verschiedenen Anwendungprogrammen zur Textverarbeitung unterschiedlich. Zur Formatierung von Text werden auch Markup-Codes verwendet. In der Kryptographie werden Codes zusätzlich verschlüsselt, damit Informationen nur von berechtigten Empfängern entschlüsselt und genutzt werden können.

Kompatible Zeichenkodierungen

Viele Zeichenkodierungen sind so entworfen, dass sie für Bytes im Bereich 0…127 das gleiche Zeichen kodieren wie ASCII und die Bytes 128…255 für die Darstellung weiterer Zeichen benutzen.

Kodierungen mit fester Länge

Hier steht ein Byte immer für ein Zeichen


Kodierungen mit variabler Länge

Um eine höhere Anzahl von Zeichen kodieren zu können, stehen nur die Bytes 0…127 für ein Zeichen, die weiteren Zeichen werden durch mehrere Bytes aus dem Bereich 128…255 kodiert.

Siehe auch