ASCII-tabelreferentie

Elk afdrukbaar teken dat je in het Engels typt, correspondeert met een getal tussen 32 en 126 in de zevenbits ASCII-standaard. Onder 32 en op 127 staan de control codes, LF, CR, ESC, DEL en de rest, die nog steeds belangrijk zijn wanneer je een serieel protocol debugt of line endings repareert. Deze referentietabel geeft elk codepunt van 0 tot 127 naast zijn decimale, hex-, octale, binaire en HTML-entiteitsvorm.

De ASCII-tabel gebruiken

  1. 1

    Scan de rij voor het teken dat je nodig hebt

    Zoek op letter, symbool of codepuntnaam. Control codes staan vermeld met hun drieletterige mnemonic.

  2. 2

    Lees horizontaal voor de encoding die je nodig hebt

    Decimaal voor mensvriendelijke code, hex voor sourcecode, binair voor protocolwerk, HTML-entiteit voor markup.

  3. 3

    Kopieer elke cel

    Handig wanneer je een hexdump of bytevolgorde krijgt en moet weten wat die betekent.

De drie bereiken van ASCII

Bereik Decimaal Inhoud
Besturing 0-31, 127 NUL, BEL, BS, HT, LF, VT, FF, CR, ESC, DEL, andere
Afdrukbaar 32-126 Spatie, interpunctie, cijfers, A-Z, a-z
Uitgebreid (niet-ASCII) 128+ Afhankelijk van codering; ASCII stopt strikt bij 127

Control codes die nog steeds tellen

  • 0x00 NUL, Stringterminator in C, padding in sommige binaire formaten.
  • 0x07 BEL, Laat de terminalbel afgaan.
  • 0x08 BS, Backspace.
  • 0x09 HT, Horizontale tab.
  • 0x0A LF, Regelinvoer, de Unix-regelovergang.
  • 0x0D CR, Regelterugloop; vormt met LF op Windows CRLF.
  • 0x1B ESC, Start ANSI escape sequences voor terminalkleuren.
  • 0x7F DEL, Oorspronkelijk de code om een tapegat uit te ponsen; nu zelden gebruikt.

ASCII versus Unicode

Unicode behoudt de eerste 128 codepunten met dezelfde betekenis als ASCII. UTF-8 gebruikt voor die waarden ook dezelfde losse bytes, waardoor een UTF-8-bestand met uitsluitend ASCII-tekens byte voor byte gelijk is aan de ASCII-weergave. Niet elke tekencodering gebruikt echter de bytewaarden van ASCII; EBCDIC is een bekend tegenvoorbeeld.

Veelvoorkomende conversies

  • Decimaal naar hex: 65 (dec) = 0x41 = A
  • Hex naar binair: 0x41 = 0100 0001
  • Hex naar HTML-entiteit: A of A renderen allebei als A

Veelgestelde vragen

ASCII is een 7-bits code, waardoor de achtste bit van een byte vrij bleef voor parity of uitbreiding. Waarden 128-255 zijn het domein van “extended ASCII”-varianten (Latin-1, Windows-1252, MacRoman, enz.), allemaal onderling incompatibel, wat mede verklaart waarom Unicode won.

LF (0x0A) gaat een regel omlaag; CR (0x0D) zet de cursor terug naar kolom nul. Op Unix is een newline alleen LF; op klassieke Mac was het alleen CR; op Windows en in HTTP-headers is het CR gevolgd door LF (CRLF). Mismatches zijn de klassieke oorzaak van dubbel gespatieerde of aaneengelopen tekst tussen systemen.

ASCII-hoofdletters staan op 65-90 en kleine letters op 97-122, precies 0x20 uit elkaar. Nadat code eerst heeft vastgesteld dat een byte een ASCII-letter is, kan die de 0x20-bit zetten, wissen of omschakelen om de letterkast te wijzigen. Blind XOR 0x20 toepassen op willekeurige bytes is onveilig: ook cijfers, leestekens en besturingswaarden veranderen dan.

Ja: LF en CR in tekstbestanden, HT en FF in sourcecode en terminals, ESC in ANSI-kleursequences, BEL in terminalbellen en alerts. NUL eindigt nog steeds C-strings. De rest is vooral legacy uit de teletype-tijd.

Gerelateerde tools