Zum Inhalt springen

~/CodeBlog.at

ASCII-Tabelle: alle 128 Zeichen mit Dezimal-, Hex- und Binärwerten

·2 Min. Lesezeit

Veröffentlicht
Überarbeitet

Was ist neu: Zur interaktiven Referenz ausgebaut: Hex, Oktal, Binär, Escape und HTML, Filter und Kopierfunktion, Erklärungen für Entwickler.

Kurz & knapp

ASCII definiert 128 Zeichen mit den Werten 0 bis 127: 33 Steuerzeichen (0–31 und 127, z. B. LF = 10 = 0x0A) und 95 druckbare Zeichen (32–126). Ziffern beginnen bei 48 ('0'), Großbuchstaben bei 65 ('A'), Kleinbuchstaben bei 97 ('a'). Die ersten 128 Zeichen von Unicode bzw. UTF-8 sind mit ASCII identisch.

Inhalt
  1. Die ASCII-Tabelle
  2. Aufbau der Tabelle
  3. Praktische Tricks
  4. Umrechnen in PHP und JavaScript
  5. Zeilenenden: LF und CRLF
  6. ASCII und Unicode

ASCII (American Standard Code for Information Interchange) ist der Urahn aller Zeichensätze: 128 Zeichen, nummeriert von 0 bis 127, festgelegt in den 1960er-Jahren. Bis heute steckt ASCII in jedem Quelltext, jeder URL und jedem Terminal – und die ersten 128 Zeichen von Unicode sind exakt dieselben.

Die ASCII-Tabelle

128 Zeichen

Tipp: Klick auf einen Wert kopiert ihn. Blau = Steuerzeichen.

DezHexOktBinärZeichenEscape (C)HTML
0000000000NUL
0010000001SOH
0020000010STX
0030000011ETX
0040000100EOT
0050000101ENQ
0060000110ACK
0070000111BEL
0100001000BS
0110001001HT
0120001010LF
0130001011VT
0140001100FF
0150001101CR
0160001110SO
0170001111SI
0200010000DLE
0210010001DC1
0220010010DC2
0230010011DC3
0240010100DC4
0250010101NAK
0260010110SYN
0270010111ETB
0300011000CAN
0310011001EM
0320011010SUB
0330011011ESC
0340011100FS
0350011101GS
0360011110RS
0370011111US
0400100000
0410100001
0420100010
0430100011
0440100100
0450100101
0460100110
0470100111
0500101000
0510101001
0520101010
0530101011
0540101100
0550101101
0560101110
0570101111
0600110000
0610110001
0620110010
0630110011
0640110100
0650110101
0660110110
0670110111
0700111000
0710111001
0720111010
0730111011
0740111100
0750111101
0760111110
0770111111
1001000000
1011000001
1021000010
1031000011
1041000100
1051000101
1061000110
1071000111
1101001000
1111001001
1121001010
1131001011
1141001100
1151001101
1161001110
1171001111
1201010000
1211010001
1221010010
1231010011
1241010100
1251010101
1261010110
1271010111
1301011000
1311011001
1321011010
1331011011
1341011100
1351011101
1361011110
1371011111
1401100000
1411100001
1421100010
1431100011
1441100100
1451100101
1461100110
1471100111
1501101000
1511101001
1521101010
1531101011
1541101100
1551101101
1561101110
1571101111
1601110000
1611110001
1621110010
1631110011
1641110100
1651110101
1661110110
1671110111
1701111000
1711111001
1721111010
1731111011
1741111100
1751111101
1761111110
1771111111DEL

Aufbau der Tabelle

Bereich Inhalt
0–31 Steuerzeichen, z. B. LF (10), CR (13), ESC (27)
32 Leerzeichen
33–47, 58–64, 91–96, 123–126 Satz- und Sonderzeichen
48–57 Ziffern 0–9
65–90 Großbuchstaben A–Z
97–122 Kleinbuchstaben a–z
127 Steuerzeichen DEL

Umlaute wie ä, ö, ü oder ß gibt es in ASCII nicht – sie kamen erst mit 8-Bit-Erweiterungen wie ISO 8859-1 und schließlich mit Unicode dazu.

Praktische Tricks

Weil die Zeichen geordnet sind, lässt sich mit ihren Werten rechnen:

  • Ziffer zu Zahl: '5' hat den Wert 53, '0' den Wert 48. '5' - '0' ergibt in C (und mit ord() in PHP) also die Zahl 5.
  • Groß- und Kleinbuchstaben liegen genau 32 auseinander: 'A' = 65, 'a' = 97. Binär unterscheiden sie sich nur in einem einzigen Bit (0x20).

Umrechnen in PHP und JavaScript

<?php
echo ord('A');            // 65
echo chr(97);             // a
echo ord('5') - ord('0'); // 5
echo dechex(ord('A'));    // 41
'A'.charCodeAt(0);                // 65
String.fromCharCode(97);          // 'a'
'A'.charCodeAt(0).toString(16);   // '41'
'A'.charCodeAt(0).toString(2);    // '1000001'

Zeilenenden: LF und CRLF

Zwei Steuerzeichen begegnen Entwicklern täglich – meist ungewollt:

System Zeilenende Werte Escape
Linux, macOS, Unix LF 10 \n
Windows CR + LF 13 + 10 \r\n

Mischen sich beide in einem Projekt, zeigt Git plötzlich jede Zeile einer Datei als geändert an. Abhilfe schafft eine .gitattributes im Repository, die Zeilenenden vereinheitlicht:

* text=auto eol=lf

ASCII und Unicode

Unicode umfasst heute weit über hunderttausend Zeichen – aber die ersten 128 Codepoints (U+0000 bis U+007F) sind exakt ASCII. Bei UTF-8 werden diese Zeichen zudem mit genau einem Byte gespeichert. Jeder reine ASCII-Text ist damit automatisch gültiges UTF-8.

Häufige Fragen

Wie viele Zeichen hat ASCII?

128 Zeichen mit den Werten 0 bis 127. Davon sind 33 Steuerzeichen (0–31 und 127) und 95 druckbare Zeichen (32–126, inklusive Leerzeichen).

Was ist der Unterschied zwischen LF und CRLF?

Unix, Linux und macOS beenden Zeilen mit LF (10, \n), Windows mit CR + LF (13 + 10, \r\n). Unterschiedliche Zeilenenden führen z. B. in Git zu scheinbar komplett geänderten Dateien.

Wie bekomme ich den ASCII-Wert eines Zeichens in PHP oder JavaScript?

In PHP mit ord('A') (ergibt 65) und umgekehrt chr(65). In JavaScript mit 'A'.charCodeAt(0) und String.fromCharCode(65).

Ist ASCII dasselbe wie UTF-8?

Nicht ganz: UTF-8 kann alle Unicode-Zeichen darstellen, ist aber so aufgebaut, dass die ersten 128 Zeichen exakt ASCII entsprechen und jeweils mit einem Byte gespeichert werden. Jeder ASCII-Text ist damit auch gültiges UTF-8.

Quellen & weiterführende Links

  1. RFC 20: ASCII format for Network Interchange (öffnet in neuem Tab) – RFC Editor
  2. C0 Controls and Basic Latin (U+0000–U+007F) (öffnet in neuem Tab) – Unicode Consortium
  3. ord (öffnet in neuem Tab) – PHP-Handbuch
  4. chr (öffnet in neuem Tab) – PHP-Handbuch
  5. String.prototype.charCodeAt() (öffnet in neuem Tab) – MDN Web Docs
  6. String.fromCharCode() (öffnet in neuem Tab) – MDN Web Docs
  7. gitattributes – Zeilenenden (text, eol) (öffnet in neuem Tab) – Git Dokumentation

Geschrieben von

Christoph Schwob (öffnet in neuem Tab)

Ich bin Christoph Schwob, halbkreativer Entwickler aus Österreich und arbeite seit über 10 Jahren an und mit TYPO3. Hier sammle ich Lösungen, Code-Snippets und Notizen rund um TYPO3, macOS, Server, Homelab und alles andere.

Suche

Tippe einen Suchbegriff ein.