Zeichensätze - Zeichenvorrat und Zeichenkodierung im ASCII
Über Zeichensätze werden in der EDV Speicherbedarf und Zeichenkodierung für einzelne Zeichen festgelegt. Die Anzahl der Bits, die für ein Zeichen verwendet wird, begrenzt die Menge der unterschiedlichen Zeichen und somit den Zeichenvorrat eines Zeichensatzes. Wenn beispielsweise zum Speichern eines Zeichens 7 Bits verwendet werden, dann hat man 128 verschiedene Bitmuster im Bereich von 0000000
bis 1111111
. Die unterschiedlichen Bitmuster können den einzelnen Zeichen zugeordnet werden und das zu einem Zeichen gehörende Bitmuster wird Zeichenkodierung genannt.
Ein verbreiteter 7-Bit Zeichensatz ist ASCII. Wenn man in einer Textdatei den Buchstaben A
eingibt und die Datei mit der ASCII-Zeichenkodierung speichert, dann wird für das Zeichen A
im Speicher das Bitmuster 1000001
abgelegt. Bei der Ausgabe am Bildschirm wird das Bitmuster ebenfalls verwendet. Die Grafikkarte wandelt dabei den Datenstrom um, sodass das Zeichen am Monitor angezeigt wird. Die Schriftart spielt dabei keine Rolle und beeinflusst lediglich die Darstellung des Zeichens.

Da Computer international verwendet werden und die EDV-Systeme voneinander abweichend sind, wurde ein standardisiertes Verfahren benötigt, mit dem sichergestellt wird, dass trotz unterschiedlicher EDV-Systeme, Sprachen und Tastatur-Layouts eine Information bei einer Übertragung auf ein anderes System in der ursprünglichen Form erhalten bleibt. Wenn beispielsweise auf einem PC ein Dokument erstellt wurde, dann müssen die einzelnen Zeichen des Dokuments auch so angezeigt werden, wenn das Dokument auf einem Rechner geöffnet wird. Wenn jedes EDV-System die Bitmuster anders interpretieren würde, wäre das Ergebnis bei einer Übertragung nicht mehr leserlich, da es einen Buchstabensalat zur Folge hätte.
Für solche Zwecke wurden standardisierte Zeichensätze entwickelt. Bei einer Übertragung auf ein anderes EDV-System muss man lediglich die zugrunde liegende Zeichenkodierung angeben und der Computer weiß dadurch, für welche Zeichen die einzelnen Bitmuster stehen. Im Laufe der Zeit gab es verschiedene Zeichensätze. Die wichtigsten davon sind die folgenden, wobei es einen ANSI-Zeichensatz im Grunde nicht gibt und womit mehrere Zeichensätze gemeint werden.
- ASCII (7 Bits)
- ANSI (8 Bits, ISO-8859-1 bis ISO-8859-16)
- UTF-8 (variabel von 8 - 32 Bits)
Wenn man die Zeichenkodierung sowie weitere nützliche Codes für ein Zeichen ermitteln oder einen Einblick in die enthaltenen Zeichen der Zeichensätze möchte, kann man das Script auf der Seite Zeichencodes verwenden.
Entwicklung der Zeichensätze
Die Idee, Signalen eine Bedeutung zu geben, ist sehr alt und wurde früher vor allem im militärischen Bereich genutzt. Mit der Entwicklung der elektrischen Telegrafie wurden für die Übertragung der Zeichen elektrische Impulse verwendet. Auf der Empfangsseite mussten die Signale wieder in Zeichen umgewandelt werden. Danach konnte man die Nachricht an eine Person in Textform übermitteln. Damit das Umwandeln zwischen Signalen und Zeichen entfällt, wurden Fernschreiber entwickelt.
Hierfür eigneten sich die unterschiedlich langen Impulse der Telegrafie jedoch nicht und so wurde auf die Kodierung von E. Baudot zurückgegriffen, mit dem ein Zeichen über 5 Binärziffern übertragen wurde. Es war sozusagen ein 5-Bit Zeichensatz und man konnte den Bitmustern 32 verschiedene Zeichen zuordnen. Durch eine Erweiterung mit FIGS und LTRS wurde der Zeichenvorrat auf 53 Zeichen ausgeweitet. Das System wurde in den ersten Computern übernommen, 53 Zeichen waren jedoch nicht ausreichend. Außerdem war das Umschalten zwischen FIGS und LTRS nicht erwünscht und so entstand zunächst ein 6-Bit Zeichensatz.
Da die Rechner als kleinste verarbeitbare Einheit mit 8 Bits umgehen konnten und 64 Zeichen nach wie vor zu wenig waren, wurde 1963 der 7-Bit Zeichensatz ASCII entwickelt, der zu der Zeit jedoch keine Kleinbuchstaben enthielt. 1967 wurde ASCII erweitert und die Kleinbuchstaben kamen hinzu. Das achte Bit wurde als Prüfbit verwendet. Mit 7 Bits konnten die Bitmuster 128 verschiedenen Zeichen zugeordnet werden. Da ASCII zu Fernschreibern kompatibel sein sollte, wurden die ersten 32 Positionen (0 - 31) den Steuerzeichen zugeordnet. Das letzte Bitmuster (127) wurde für das Löschzeichen reserviert und die übrigen Bitmuster wurden verschiedenen Zeichen zugeordnet.
Lange Zeit war ASCII der Standard-Zeichensatz in der EDV. 128 Zeichen waren jedoch nach wie vor nicht genug. Da das Prüfbit nicht mehr benötigt wurde, erweiterte man ASCII. Die Erweiterung wurde so vollzogen, dass das achte Bit für verschiedene Sprachräume unterschiedlich genutzt werden konnte. So entstanden die 15 verschiedenen Zeichensätze ISO-8859-1 bis ISO-8859-16, die sich anhand der Versionsnummer nach ISO-8859 unterscheiden. Sie werden auch ANSI-Zeichensätze genannt, obwohl es einen ANSI-Zeichensatz nicht gibt. ANSI hat an den Entwürfen für die ISO-8859 Zeichensätze mitgewirkt und daher werden diese häufig ANSI genannt. Im westeuropäischen Sprachraum wird ISO-8859-1 oder ISO-8859-15 verwendet. ISO-8859-12 existiert nicht und entfällt somit innerhalb der Reihe.
Diese Zeichensätze waren ausreichend, bis das Internet sich rasend schnell verbreitete. Auf Websites ist es häufig notwendig, Zeichen aus einem anderen Zeichensatz darzustellen, z.B. wenn man auf einer deutschen Website einen ausländischen Namen, Städtenamen, Produktnamen etc. schreiben möchte. Die Lösung hierfür ist UTF (Unicode), die es in verschiedenen Ausprägungen gibt. Mittlerweile wird meistens UTF-8 verwendet, da es sparsam im Speicherverbrauch ist und man trotzdem alle Zeichen damit darstellen kann. Der Speicherverbrauch ist dabei variabel. Für die Zeichen 0 - 127 aus dem ASCII-Zeichensatz wird nur 1 Byte benötigt. Für die Zeichen darüber hinaus 2 oder mehr Bytes. Da das Bitmuster für die deutschen Umlaute nach 127 angeordnet sind, verbrauchen diese in UTF-8 zwei Bytes (in ISO-8859-1 nur 1 Byte).
ASCII-Zeichensatz: American Standard Code for Information Interchange
ASCII steht für American Standard Code for Information Interchange. Es ist ein 7-Bit Zeichensatz, wodurch man 128 verschiedene Bitmuster einzelnen Zeichen zuordnen kann. Die ersten 32 Zeichen sind Steuerzeichen, um die Kompatibilität mit Fernschreibern zu gewährleisten. Das letzte Zeichen ist das Löschzeichen. Auf der folgenden Tabelle können die Zuordnungen der verschiedenen Bitmuster entnommen werden. Die ersten 128 Zeichen von UTF und der ISO-8859-Reihe sind identisch.
Scancode | Dual | Hex | Dezimal | Zeichen | Scancode | Dual | Hex | Dezimal | Zeichen |
---|---|---|---|---|---|---|---|---|---|
0000000 | 00 | 0 | NUL | 1000000 | 40 | 64 | @ | ||
0000001 | 01 | 1 | SOH ^A | 1E | 1000001 | 41 | 65 | A | |
0000010 | 02 | 2 | STX ^B | 30 | 1000010 | 42 | 66 | B | |
0000011 | 03 | 3 | ETX ^C | 2E | 1000011 | 43 | 67 | C | |
0000100 | 04 | 4 | EOT ^D | 20 | 1000100 | 44 | 68 | D | |
0000101 | 05 | 5 | ENQ ^E | 12 | 1000101 | 45 | 69 | E | |
0000110 | 06 | 6 | ACK ^F | 21 | 1000110 | 46 | 70 | F | |
0000111 | 07 | 7 | BEL ^G | 22 | 1000111 | 47 | 71 | G | |
0E | 0001000 | 08 | 8 | BS ^H | 23 | 1001000 | 48 | 72 | H |
0F | 0001001 | 09 | 9 | TAB ^I | 17 | 1001001 | 49 | 73 | I |
0001010 | 0A | 10 | LF ^J | 24 | 1001010 | 4A | 74 | J | |
0001011 | 0B | 11 | VT ^K | 25 | 1001011 | 4B | 75 | K | |
0001100 | 0C | 12 | FF ^L | 26 | 1001100 | 4C | 76 | L | |
1C | 0001101 | 0D | 13 | CR ^M | 32 | 1001101 | 4D | 77 | M |
0001110 | 0E | 14 | SO ^N | 31 | 1001110 | 4E | 78 | N | |
0001111 | 0F | 15 | SI ^O | 18 | 1001111 | 4F | 79 | O | |
0010000 | 10 | 16 | DLE ^P | 19 | 1010000 | 50 | 80 | P | |
0010001 | 11 | 17 | DC1 ^Q | 10 | 1010001 | 51 | 81 | Q | |
0010010 | 12 | 18 | DC2 ^R | 13 | 1010010 | 52 | 82 | R | |
0010011 | 13 | 19 | DC3 ^S | 1F | 1010011 | 53 | 83 | S | |
0010100 | 14 | 20 | DC4 ^T | 14 | 1010100 | 54 | 84 | T | |
0010101 | 15 | 21 | NAK ^U | 16 | 1010101 | 55 | 85 | U | |
0010110 | 16 | 22 | SYN ^V | 2F | 1010110 | 56 | 86 | V | |
0010111 | 17 | 23 | ETB ^W | 11 | 1010111 | 57 | 87 | W | |
0011000 | 18 | 24 | CAN ^X | 2D | 1011000 | 58 | 88 | X | |
0011001 | 19 | 25 | EM ^Y | 2C | 1011001 | 59 | 89 | Y | |
0011010 | 1A | 26 | SUB ^Z | 15 | 1011010 | 5A | 90 | Z | |
01 | 0011011 | 1B | 27 | Esc | 1011011 | 5B | 91 | [ | |
0011100 | 1C | 28 | FS | 1011100 | 5C | 92 | \ | ||
0011101 | 1D | 29 | GS | 1011101 | 5D | 93 | ] | ||
0011110 | 1E | 30 | RS | 29 | 1011110 | 5E | 94 | ^ | |
0011111 | 1F | 31 | US | 35 | 1011111 | 5F | 95 | _ | |
0100000 | 20 | 32 | SP | 0D | 1100000 | 60 | 96 | ` | |
02 | 0100001 | 21 | 33 | ! | 1E | 1100001 | 61 | 97 | a |
03 | 0100010 | 22 | 34 | " | 30 | 1100010 | 62 | 98 | b |
29 | 0100011 | 23 | 35 | # | 2E | 1100011 | 63 | 99 | c |
05 | 0100100 | 24 | 36 | $ | 20 | 1100100 | 64 | 100 | d |
06 | 0100101 | 25 | 37 | % | 12 | 1100101 | 65 | 101 | e |
07 | 0100110 | 26 | 38 | & | 21 | 1100110 | 66 | 102 | f |
0D | 0100111 | 27 | 39 | ' | 22 | 1100111 | 67 | 103 | g |
09 | 0101000 | 28 | 40 | ( | 23 | 1101000 | 68 | 104 | h |
0A | 0101001 | 29 | 41 | ) | 17 | 1101001 | 69 | 105 | i |
1B | 0101010 | 2A | 42 | * | 24 | 1101010 | 6A | 106 | j |
1B | 0101011 | 2B | 43 | + | 25 | 1101011 | 6B | 107 | k |
33 | 0101100 | 2C | 44 | , | 26 | 1101100 | 6C | 108 | l |
35 | 0101101 | 2D | 45 | - | 32 | 1101101 | 6D | 109 | m |
34 | 0101110 | 2E | 46 | . | 31 | 1101110 | 6E | 110 | n |
08 | 0101111 | 2F | 47 | / | 18 | 1101111 | 6F | 111 | o |
0B | 0110000 | 30 | 48 | 0 | 19 | 1110000 | 70 | 112 | p |
02 | 0110001 | 31 | 49 | 1 | 10 | 1110001 | 71 | 113 | q |
03 | 0110010 | 32 | 50 | 2 | 13 | 1110010 | 72 | 114 | r |
04 | 0110011 | 33 | 51 | 3 | 1F | 1110011 | 73 | 115 | s |
05 | 0110100 | 34 | 52 | 4 | 14 | 1110100 | 74 | 116 | t |
06 | 0110101 | 35 | 53 | 5 | 16 | 1110101 | 75 | 117 | u |
07 | 0110110 | 36 | 54 | 6 | 2F | 1110110 | 76 | 118 | v |
08 | 0110111 | 37 | 55 | 7 | 11 | 1110111 | 77 | 119 | w |
09 | 0111000 | 38 | 56 | 8 | 2D | 1111000 | 78 | 120 | x |
0A | 0111001 | 39 | 57 | 9 | 2C | 1111001 | 79 | 121 | y |
34 | 0111010 | 3A | 58 | : | 15 | 1111010 | 7A | 122 | z |
33 | 0111011 | 3B | 59 | ; | 1111011 | 7B | 123 | { | |
2B | 0111100 | 3C | 60 | < | 1111100 | 7C | 124 | | | |
0B | 0111101 | 3D | 61 | = | 1111101 | 7D | 125 | } | |
2B | 0111110 | 3E | 62 | > | 1111110 | 7E | 126 | ~ | |
0C | 0111111 | 3F | 63 | ? | 53 | 1111111 | 7F | 127 | DEL |