Skip to content

ASCII-tabel en ASCII-converter

De volledige ASCII-tabel: 128 tekens in decimaal, hex, octaal en binair, plus een converter die beide kanten op werkt. Stuurtekens met escape-sequenties, caret-notatie en de plek waar je ze echt tegenkomt.

Geen tracking Draait in je browser Gratis

Alles draait in je browser — je invoer wordt nooit geüpload, gelogd of opgeslagen.

Tekst en ASCII-code, beide kanten op

De volledige ASCII-tabel (0-127)

128 / 128
Dec Hex Oct Binair Teken Naam Escape Caret HTML Waar je het tegenkomt
0 00 000 00000000 NUL Null \0 ^@ � Sluit strings af in C; scheidt bestandsnamen in find -print0 en xargs -0; laat grep “Binary file matches” melden.
1 01 001 00000001 SOH Start of Heading ^A  Het FIX-protocol gebruikt het als veldscheiding, en daarom zien FIX-berichten eruit als één aaneengesloten regel.
2 02 002 00000010 STX Start of Text ^B  Framekop in seriële protocollen, kassasystemen en barcodescanners; tmux-prefixtoets Ctrl+B.
3 03 003 00000011 ETX End of Text ^C  Ctrl+C stuurt deze byte; de tty-line-discipline maakt er SIGINT van, dus je programma ziet hem nooit.
4 04 004 00000100 EOT End of Transmission ^D  Ctrl+D dient de huidige invoerregel in; is de regel leeg, dan levert het lezen 0 bytes op, en dat is EOF.
5 05 005 00000101 ENQ Enquiry ^E  Oude verbindingshandshakes; sommige terminals antwoorden erop met een identificatiereeks.
6 06 006 00000110 ACK Acknowledge ^F  Samen met ENQ en NAK in oude linklaagprotocollen; nog steeds te zien in industriële seriële apparatuur.
7 07 007 00000111 BEL Bell \a ^G  printf '\a' laat de bel klinken; vaker sluit het tegenwoordig een OSC-reeks af, zoals het zetten van de venstertitel.
8 08 010 00001000 BS Backspace \b ^H  Wissen in voortgangsbalken. Let op: de meeste terminals sturen voor Backspace 0x7F en niet deze byte.
9 09 011 00001001 HT Character Tabulation \t ^I 	 Recepten in een Makefile moeten met een echte tab beginnen; gofmt springt in met tabs; Tab en Ctrl+I zijn dezelfde byte.
10 0A 012 00001010 LF Line Feed \n ^J 
 Regeleinde op Unix en macOS; core.autocrlf van git zet om tussen deze byte en CRLF.
11 0B 013 00001011 VT Line Tabulation \v ^K  Vrijwel uitgestorven, maar telt nog steeds als regeleinde: splitlines() splitst erop en split("\n") niet.
12 0C 014 00001100 FF Form Feed \f ^L  Paginadoorvoer op een printer; Ctrl+L wist de terminal; Emacs gebruikt het als sectiemarkering in broncode.
13 0D 015 00001101 CR Carriage Return \r ^M 
 De eerste helft van Windows-CRLF; verschijnt als ^M in git diff; veroorzaakt “bad interpreter: /bin/bash^M”.
14 0E 016 00001110 SO Shift Out ^N  Schakelt in ISO 2022 over naar de alternatieve tekenset G1; omsluit dubbelbytegebieden op EBCDIC-mainframes.
15 0F 017 00001111 SI Shift In ^O  Schakelt terug naar de standaardtekenset G0, in een paar met SO.
16 10 020 00010000 DLE Data Link Escape ^P  Escape-prefix voor byte stuffing in oudere binaire protocollen.
17 11 021 00010001 DC1 Device Control One ^Q  XON — hervatting van softwarematige flow control; Ctrl+Q ontdooit de terminaluitvoer.
18 12 022 00010010 DC2 Device Control Two ^R  Geen vaste moderne betekenis. Ctrl+R in een shell is een readline-toetsbinding, los van deze code.
19 13 023 00010011 DC3 Device Control Three ^S  XOFF — pauze van softwarematige flow control. Per ongeluk Ctrl+S is de gebruikelijke oorzaak van een bevroren terminal.
20 14 024 00010100 DC4 Device Control Four ^T  Geen vaste moderne betekenis; op BSD en macOS is Ctrl+T de statustoets van de tty.
21 15 025 00010101 NAK Negative Acknowledge ^U  Ctrl+U wist de hele regel — dat is de tty-instelling kill, niet de oorspronkelijke betekenis van deze code.
22 16 026 00010110 SYN Synchronous Idle ^V  Ctrl+V is lnext: druk het in en dan Tab om in bash een echte tab te typen zonder aanvulling te activeren.
23 17 027 00010111 ETB End of Transmission Block ^W  Ctrl+W wist het vorige woord — de tty-instelling werase.
24 18 030 00011000 CAN Cancel ^X  ECMA-48 breekt er een onafgemaakte stuurreeks mee af; terminals gooien de reeks weg die ze aan het lezen zijn.
25 19 031 00011001 EM End of Medium ^Y  Tegenwoordig zelden gebruikt; op BSD en macOS is Ctrl+Y uitgestelde suspend.
26 1A 032 00011010 SUB Substitute ^Z  Markering voor bestandseinde in CP/M- en DOS-tekstbestanden; daarom eindig je invoer in een Windows-console met Ctrl+Z.
27 1B 033 00011011 ESC Escape ^[  Begin van elke ANSI-escape-reeks: \033[0m zet de kleur terug, \033[2J wist het scherm. Ctrl+[ stuurt het ook.
28 1C 034 00011100 FS File Separator ^\  De MLLP-omkadering van HL7 v2 gebruikt het als blokafsluiting; Ctrl+\ stuurt SIGQUIT.
29 1D 035 00011101 GS Group Separator ^]  In GS1-barcodes is de FNC1-scheiding deze byte — de onzichtbare scheiding die je scanner uitspuugt.
30 1E 036 00011110 RS Record Separator ^^  RFC 7464 JSON Text Sequences zetten het voor elke record. Een van de weinige levende moderne toepassingen.
31 1F 037 00011111 US Unit Separator ^_  Veldscheiding in gestructureerde tekst, veiliger dan een komma omdat het nooit in de inhoud zelf voorkomt.
32 20 040 00100000 Space  
33 21 041 00100001 Exclamation Mark !
34 22 042 00100010 Quotation Mark "
35 23 043 00100011 Number Sign #
36 24 044 00100100 Dollar Sign $
37 25 045 00100101 Percent Sign %
38 26 046 00100110 Ampersand &
39 27 047 00100111 Apostrophe '
40 28 050 00101000 Left Parenthesis (
41 29 051 00101001 Right Parenthesis )
42 2A 052 00101010 Asterisk *
43 2B 053 00101011 Plus Sign +
44 2C 054 00101100 Comma ,
45 2D 055 00101101 Hyphen-Minus -
46 2E 056 00101110 Full Stop .
47 2F 057 00101111 Solidus /
48 30 060 00110000 Digit Zero 0
49 31 061 00110001 Digit One 1
50 32 062 00110010 Digit Two 2
51 33 063 00110011 Digit Three 3
52 34 064 00110100 Digit Four 4
53 35 065 00110101 Digit Five 5
54 36 066 00110110 Digit Six 6
55 37 067 00110111 Digit Seven 7
56 38 070 00111000 Digit Eight 8
57 39 071 00111001 Digit Nine 9
58 3A 072 00111010 Colon :
59 3B 073 00111011 Semicolon &#59;
60 3C 074 00111100 Less-Than Sign <
61 3D 075 00111101 Equals Sign =
62 3E 076 00111110 Greater-Than Sign >
63 3F 077 00111111 Question Mark ?
64 40 100 01000000 Commercial At @
65 41 101 01000001 Latin Capital Letter A A
66 42 102 01000010 Latin Capital Letter B B
67 43 103 01000011 Latin Capital Letter C C
68 44 104 01000100 Latin Capital Letter D D
69 45 105 01000101 Latin Capital Letter E E
70 46 106 01000110 Latin Capital Letter F F
71 47 107 01000111 Latin Capital Letter G G
72 48 110 01001000 Latin Capital Letter H H
73 49 111 01001001 Latin Capital Letter I I
74 4A 112 01001010 Latin Capital Letter J J
75 4B 113 01001011 Latin Capital Letter K K
76 4C 114 01001100 Latin Capital Letter L L
77 4D 115 01001101 Latin Capital Letter M M
78 4E 116 01001110 Latin Capital Letter N N
79 4F 117 01001111 Latin Capital Letter O O
80 50 120 01010000 Latin Capital Letter P P
81 51 121 01010001 Latin Capital Letter Q Q
82 52 122 01010010 Latin Capital Letter R R
83 53 123 01010011 Latin Capital Letter S S
84 54 124 01010100 Latin Capital Letter T T
85 55 125 01010101 Latin Capital Letter U U
86 56 126 01010110 Latin Capital Letter V V
87 57 127 01010111 Latin Capital Letter W W
88 58 130 01011000 Latin Capital Letter X X
89 59 131 01011001 Latin Capital Letter Y Y
90 5A 132 01011010 Latin Capital Letter Z Z
91 5B 133 01011011 Left Square Bracket [
92 5C 134 01011100 Reverse Solidus \
93 5D 135 01011101 Right Square Bracket ]
94 5E 136 01011110 Circumflex Accent ^
95 5F 137 01011111 Low Line _
96 60 140 01100000 Grave Accent `
97 61 141 01100001 Latin Small Letter A a
98 62 142 01100010 Latin Small Letter B b
99 63 143 01100011 Latin Small Letter C c
100 64 144 01100100 Latin Small Letter D d
101 65 145 01100101 Latin Small Letter E e
102 66 146 01100110 Latin Small Letter F f
103 67 147 01100111 Latin Small Letter G g
104 68 150 01101000 Latin Small Letter H h
105 69 151 01101001 Latin Small Letter I i
106 6A 152 01101010 Latin Small Letter J j
107 6B 153 01101011 Latin Small Letter K k
108 6C 154 01101100 Latin Small Letter L l
109 6D 155 01101101 Latin Small Letter M m
110 6E 156 01101110 Latin Small Letter N n
111 6F 157 01101111 Latin Small Letter O o
112 70 160 01110000 Latin Small Letter P p
113 71 161 01110001 Latin Small Letter Q q
114 72 162 01110010 Latin Small Letter R r
115 73 163 01110011 Latin Small Letter S s
116 74 164 01110100 Latin Small Letter T t
117 75 165 01110101 Latin Small Letter U u
118 76 166 01110110 Latin Small Letter V v
119 77 167 01110111 Latin Small Letter W w
120 78 170 01111000 Latin Small Letter X x
121 79 171 01111001 Latin Small Letter Y y
122 7A 172 01111010 Latin Small Letter Z z
123 7B 173 01111011 Left Curly Bracket {
124 7C 174 01111100 Vertical Line |
125 7D 175 01111101 Right Curly Bracket }
126 7E 176 01111110 Tilde ~
127 7F 177 01111111 DEL Delete ^?  Wat je Backspace-toets op de meeste terminals daadwerkelijk stuurt. Genoemd naar ponsband: alle zeven gaten geponst.

De binaire kolom is voor de leesbaarheid aangevuld tot 8 bits. ASCII zelf is een 7-bits code — de bovenste bit is altijd 0, en precies dat laat UTF-8 achterwaarts compatibel blijven.

En hoe zit het met 128-255?

ASCII definieert 128-255 helemaal niet. “Extended ASCII” is de naam van geen enkele standaard — het is een losse term voor een hele familie 8-bits coderingen. Dezelfde byte is in elk daarvan een ander teken:

Byte ISO-8859-1 Windows-1252 CP437 CP866
0x80 U+0080 C1-stuurteken (onzichtbaar) Ç А
0x93 U+0093 C1-stuurteken (onzichtbaar) ô У
0xB0 ° °
0xE9 é é Θ щ
0xFF ÿ ÿ U+00A0 U+00A0
De tekenclassificaties worden tijdens het testen gekruist met Unicodes eigen categorieën, en de Windows-1252-tabel wordt byte voor byte geverifieerd tegen de decoder van het platform. — Go-Tools Engineering · Sep 2, 2026

Elke waarde in de tabel komt uit één engine die zowel de server als de browser uitvoert, zodat wat een crawler leest en waar jij mee werkt nooit uit elkaar kunnen lopen. De verschillen in escapes tussen talen zijn geverifieerd door de code in elke taal te compileren en uit te voeren, niet uit het hoofd geciteerd.

Snelle naslag

Wat is de ASCII-code voor A?

A = 65 Hoofdletter `A` is 65 decimaal, `0x41` hexadecimaal, `101` octaal en `01000001` binair. Kleine letter `a` is 97 — precies 32 meer, en dat is één bit.

Hoeveel tekens heeft ASCII?

128 128, genummerd 0 tot en met 127. Dat zijn 32 stuurtekens, 95 grafische tekens inclusief de spatie, en DEL.

Wat is ASCII 0?

0 = NUL NUL, het nulteken. Het sluit strings af in C, scheidt bestandsnamen in `find -print0` en zorgt dat `grep` een bestand als binair behandelt.

Welke byte is een regeleinde?

LF = 10, CR = 13 Line feed is 10 (`0x0A`, `\n`). Carriage return is 13 (`0x0D`, `\r`). Windows-regeleindes zijn allebei, met CR eerst.

Wat is ASCII?

ASCII is een 7-bits tekencodering — 128 codepunten, genummerd 0 tot en met 127, en niet meer. Het verscheen voor het eerst als ASA X3.4-1963 en de huidige vorm is ANSI X3.4-1986; RFC 20 beschrijft het gebruik op internet en werd in 2015 verheven tot Internet Standard STD 80. De eerste versie had helemaal geen kleine letters; die kwamen pas met de herziening van 1967. Alles boven 127 hoort bij een andere codering, niet bij ASCII.

0x00-0x1F   32 C0 control characters
0x20         1 space (a graphic character, not a control)
0x21-0x7E   94 printable graphic characters
0x7F         1 DEL (a control character, but not part of C0)
            ---
            128 total

Wat deze tabel je geeft

Alle vier de talstelsels naast elkaar

Decimaal, hexadecimaal, octaal en 8-bits binair voor elk van de 128 codepunten, met de voorloopnul die je eraan herinnert dat ASCII eigenlijk 7-bits is.

Escape-sequenties per taal

De kolom \0 \a \b \t \n \v \f \r plus de verschillen die daadwerkelijk builds slopen — JavaScript heeft geen \a, Java heeft noch \a noch \v, en \e is een GNU-uitbreiding in plaats van ISO C.

Caret-notatie

De kolom van ^@ tot ^?, en de ene regel die alle 33 stuurtekens dekt: XOR de byte met 0x40. Niet optellen, niet aftrekken — XOR.

Waar je elk stuurteken echt tegenkomt

Niet alleen “SOH — start of heading”, maar ook dat berichten van het FIX-protocol het als veldscheiding gebruiken, dat 0x1D de onzichtbare scheiding is die je barcodescanner uitspuugt, en dat een met Ctrl+S bevroren terminal XOFF is.

Een converter die weigert te raden

Jij kiest het talstelsel. Bytes boven 127 worden geweigerd met een notitie over hoe ze in Windows-1252 en ISO-8859-1 gelezen zouden worden, in plaats van ze voor ASCII te laten doorgaan.

Stuurtekens blijven zichtbaar

NUL, TAB en CR hebben geen glief, dus de voorvertoning toont ze als Unicode Control Pictures. De kopieerknop geeft je nog steeds de echte bytes.

Verwante coderingen

ISO/IEC 8859-1 (Latin-1)

8-bits, één byte

Houdt 0-127 identiek aan ASCII en definieert 96 grafische tekens van 0xA0 tot en met 0xFF. Het bereik 0x80-0x9F blijft over voor onzichtbare C1-stuurtekens.

Windows-1252

8-bits, één byte

Een superset van ISO-8859-1 waarvan het enige verschil 0x80-0x9F is: daar zet het 27 afdrukbare tekens neer en laat het er 5 ongedefinieerd. Browsers gebruiken het zodra een pagina ISO-8859-1 claimt.

CP437

8-bits, één byte

De oorspronkelijke codepagina van de IBM-pc. De bovenste helft bestaat uit letters met accenten, Griekse letters en lijntekens — dat zijn de tabellen die je ziet in artikelen die 256 ASCII-tekens beloven.

UTF-8

Variabel, 1-4 bytes

Encodeert heel Unicode en houdt daarbij elke ASCII-byte byte voor byte identiek. Achterwaarts compatibel met US-ASCII, maar met geen van de 8-bits codepagina's hierboven.

Voorbeelden

Tekst naar decimale codes

Hello
72 101 108 108 111

Elk teken wordt zijn decimale codepunt. Hoofdletters lopen van 65 tot 90, kleine letters van 97 tot 122 — precies 32 uit elkaar, en daarom wisselt het omklappen van bit 5 tussen hoofdletter en kleine letter.

Dezelfde codes, in twee talstelsels gelezen

41 42 43
hex -> ABC     decimal -> )*+

Precies daarom raadt de converter het talstelsel nooit voor je. Beide lezingen zijn geldig; alleen jij weet welke je bedoelde.

Stuurtekens overleven de weg heen en terug

9 10 13 0
TAB, LF, CR, NUL

In het uitvoerveld zijn ze onzichtbaar, dus de voorbeeldregel toont ze als tekens uit het Unicode-blok Control Pictures. De kopieerknop levert nog steeds de echte bytes, niet de vervangers.

Bytes boven 127 worden geweigerd, met uitleg

233
Outside ASCII (0-127)

233 is geen ASCII-code. De tool vertelt je dat de byte zowel in Windows-1252 als in ISO-8859-1 als é gelezen wordt, maar doet niet alsof dat ASCII is.

Zo gebruik je het

  1. 1

    Kies het talstelsel

    Decimaal, hexadecimaal, octaal of binair. Doe dit eerst — dezelfde cijfers worden in elk stelsel anders gelezen en de tool raadt bewust niet.

  2. 2

    Typ aan een van beide kanten

    Tekst links, codes rechts. In welk veld je ook typt, het andere wordt bijgewerkt.

  3. 3

    Lees de waarschuwingen

    Tekens buiten 0-127 worden met hun codepunt en UTF-8-bytes opgesomd in plaats van stil te verdwijnen of vraagtekens te worden.

  4. 4

    Gebruik de tabel als naslagwerk

    Filter op stuurtekens, zoek op code of naam en klik op een teken om het te kopiëren.

Fouten die het waard zijn om te kennen

Beweren dat ASCII 256 tekens heeft

ASCII stopt bij 127. Alles daarboven hoort bij een specifieke 8-bits codepagina die je moet benoemen. Python zegt het je regelrecht als je vraagt om een teken met een accent als ASCII te encoderen.

✗ Fout
'cafe\u00e9'.encode('ascii')  # UnicodeEncodeError: ordinal not in range(128)
✓ Correct
'cafe\u00e9'.encode('utf-8')   # b'cafe\xc3\xa9'

Aannemen dat elke taal dezelfde escapes heeft

JavaScript heeft geen \a-escape. In plaats van te falen laat het de backslash vallen en houd je de letter over, en strict mode helpt niet.

✗ Fout
"\a".charCodeAt(0)   // 97 - that is the letter 'a', not BEL
✓ Correct
"\x07".charCodeAt(0) // 7 - BEL

Caret-notatie uitleggen als optellen

0x40 optellen werkt voor het C0-bereik en breekt dan bij DEL, waar je juist zou moeten aftrekken. XOR is de ene regel die alle 33 dekt.

✗ Fout
caret = chr(code + 0x40)   # 0x7F + 0x40 overflows past the table
✓ Correct
caret = chr(code ^ 0x40)   # 0x00 -> @, 0x1B -> [, 0x7F -> ?

Wanneer je dit nodig hebt

Een hexdump of een protocoltrace lezen
Je hebt bytes en moet weten welke afdrukbaar zijn, welke scheidingstekens zijn en welke stuurcodes de terminal stilletjes uitvoert.
Een bestand debuggen dat zich vreemd gedraagt
Een verdwaalde CR aan het eind van elke regel, een NUL waardoor grep het bestand binair noemt, of een TAB op de plek waar een Makefile er een eiste.
Een parser of een validator schrijven
Bepalen welke bytebereiken je accepteert en de grenzen goed leggen — 0x21-0x7E voor grafische tekens, 0x20 voor de spatie, 0x7F voor DEL.
Een coderingsfout uitleggen
Een collega laten zien waarom dezelfde byte als drie verschillende tekens opduikt, afhankelijk van welke codepagina de lezer aannam.

Technische details

ASCII, Unicode en UTF-8
De eerste 128 codepunten van Unicode, U+0000 tot en met U+007F, komen één op één overeen met ASCII. UTF-8 encodeert ze als losse bytes 0x00-0x7F met de bovenste bit op 0. De eigenschap die er echt toe doet is de derde: elke byte van een UTF-8-reeks van meerdere bytes heeft zijn bovenste bit op 1, dus een byte in het bereik 0-127 kan nooit deel zijn van een niet-ASCII-teken. Dat is wat het veilig maakt om UTF-8 byte voor byte te doorzoeken op /, \0 of \n.
De 8e bit
ASCII definieert een 7-bits code; één teken per byte van 8 bits opslaan is een conventie, en historisch was die overgebleven bit vaak een pariteitsbit. Mailtransporten die alleen 7-bits transparantie garandeerden zijn de reden dat Base64 en quoted-printable bestaan.
Waarom het alfabet ligt zoals het ligt
De cijfers 0-9 staan op 0x30-0x39, dus de onderste nibble is de waarde zelf. A is 0x41 en a is 0x61 — één bit uit elkaar, dus c | 0x20 maakt er een kleine letter van en c & 0xDF een hoofdletter. Maar alleen voor letters: '_' | 0x20 geeft 0x7F, en dat is DEL, en '[' | 0x20 geeft {.
Nationale varianten en het 0x5C-probleem
ISO/IEC 646 liet 12 codepunten per land vervangen. Japans JIS X 0201 zette een yenteken op 0x5C, Korea's KS X 1003 zette daar een wonteken — en daarom toont Japans Windows paden met een yenteken terwijl de byte nog steeds 0x5C is. In Shift_JIS wordt het erger: daar kan de tweede byte van een tweebyteteken zelf 0x5C zijn — de tekens voor hyou, so, juu, nou, kou en bou eindigen er allemaal op, dus naïeve backslash-afhandeling knipt ze doormidden.

Zo doe je het goed

Noem altijd de codepagina
“Extended ASCII” zegt de lezer niets. Zeg Windows-1252, of ISO-8859-1, of CP437 — dezelfde byte is in elk daarvan een ander teken.
Zeg US-ASCII als je dat bedoelt
Dat is de bij IANA geregistreerde naam. charset=ascii is dat niet, en in een browser levert charset=ISO-8859-1 je feitelijk Windows-1252 op, omdat de WHATWG Encoding Standard het label zo toewijst.
Raad nooit een talstelsel voor de gebruiker
Als jouw tool of jouw parser stilzwijgend besluit dat 41 hexadecimaal is, zit het ruwweg de helft van de tijd fout — en die fout is stil.
Doorloop codepunten, geen UTF-16-eenheden
"A" + een muzieksleutel + een Chinees teken heeft .length === 4 maar slechts drie tekens. Gebruik [...str] of codePointAt, anders meldt je bericht over een “niet-ondersteund teken” een emoji als twee kapotte helften.

Veelgestelde vragen

Hoeveel tekens zitten er in ASCII?
128. ASCII is een 7-bits code en definieert dus precies de codepunten 0 tot en met 127: 32 C0-stuurtekens, 95 grafische tekens inclusief de spatie, en DEL. Artikelen met de titel “volledige ASCII-tabel (256 tekens)” laten je een specifieke 8-bits codepagina zien — meestal CP437 of Windows-1252 — en geen ASCII.
Wat is extended ASCII?
Strikt genomen niets. “Extended ASCII” is de naam van geen enkele standaard; het is een losse term voor een hele familie 8-bits coderingen die 0-127 gelijk houden en 128-255 elk anders invullen. De byte 0xE9 is in ISO-8859-1 een é, in CP437 de Griekse letter Theta en in CP866 een Cyrillische letter. Zonder de codepagina te noemen heeft de vraag geen antwoord.
Is Windows-1252 hetzelfde als ISO-8859-1?
Van 0xA0 tot en met 0xFF zijn ze identiek, en van 0x80 tot en met 0x9F volledig verschillend. ISO-8859-1 laat dat bereik over aan onzichtbare C1-stuurtekens; Windows-1252 zet er 27 afdrukbare tekens neer — het euroteken, gekrulde aanhalingstekens, het half en het lang kastlijntje — en laat 5 posities ongedefinieerd. Daarom verandert een gekruld aanhalingsteken dat uit een tekstverwerker is gekopieerd in een onzichtbaar stuurteken zodra het door iets gaat dat echt ISO-8859-1 is.
Is DEL een stuurteken?
Ja. Unicode deelt U+007F in als Cc, en iscntrl(127) is in C waar. Het hoort alleen niet bij de C0-verzameling, en die is strikt 0x00-0x1F. Het staat aan het eind van de tabel vanwege ponsband: 0x7F is zeven geponste gaten, en een geponst gat krijg je niet meer terug, dus “alle gaten geponst” was de enige manier om een teken als verwijderd te markeren.
Is de spatie een stuurteken?
Nee, en heel wat ASCII-overzichten hebben dit mis. Unicode deelt de spatie (0x20) in als Zs, een scheidingsteken, en dat is een grafisch teken. Alleen 0x00-0x1F en 0x7F zijn stuurtekens.
Waarom toont mijn binaire kolom 8 bits als ASCII 7-bits is?
Omdat de byte de eenheid is waarin alles daadwerkelijk wordt opgeslagen — de bovenste bit is simpelweg altijd 0. Die opvulling is niet cosmetisch: juist omdat ASCII de achtste bit nooit gebruikt, kon UTF-8 die opeisen als vlag voor “dit hoort bij een reeks van meerdere bytes”, en dat is precies wat UTF-8 achterwaarts compatibel maakt met ASCII.
Schrijft elke taal stuurtekens op dezelfde manier?
Nee, en de verschillen bijten. \a (bell) is standaard in C en Python, maar JavaScript kent zo'n escape niet — '\a' wordt stilzwijgend de letter a, zonder foutmelding, ook in strict mode. Java weigert zowel \a als \v. Go weigert \0, omdat octale escapes daar exact drie cijfers moeten hebben, dus schrijf je \000. En \e voor escape is een GNU-uitbreiding, geen ISO C.
Wat betekent ^M in een diff of in vim?
Het is een carriage return, byte 13. De caret-notatie schrijft een stuurteken door zijn waarde met 0x40 te XOR-en, dus CR (0x0D) wordt ^M en ESC (0x1B) wordt ^[. Een ^M aan het eind van elke regel betekent dat het bestand Windows-CRLF-regeleindes heeft; bad interpreter: /bin/bash^M betekent dat een shellscript ze heeft opgepikt.

Gerelateerde tools

Alle tools bekijken →