Command Palette

Search for a command to run...

ASCII-tabel: de complete gids voor tekencodes (0-255)

ASCII-tabel: de complete gids voor tekencodes (0-255)

T
Toolz Team
|Aug 23, 2026|15 min lezen

Onderdeel van de collectie Binair & Hex

De eerste keer dat ASCII echt belangrijk voor mij was, was ik een CSV-import aan het debuggen voor een WordPress-plug-in die steeds één klant splitste ' s-adres in twee rijen Het bestand zag er prima uit in elke editor waarin ik het opende Het bleek dat één export een kale wagenretour (code 13) had gebruikt als een lijneinde terwijl mijn parser een lijnfeed verwachtte (code 10), en een verdwaalde recordscheider (code 30) was ingeslopen van een mainframe-export stroomopwaarts Geen van die tekens drukt iets af Je kunt ze alleen zien als je een tabel hebt die de onzichtbare byte in een nummer en een naam bouwt - wat precies de reden is waarom ik ASCII-tabel op Toolz.dev en waarom ik het vasthoud in een browsertabblad.

tl;dr: ASCII wijst elk Engels basisteken en een reeks besturingssignalen toe aan de cijfers 0-127; uitgebreide sets zoals ISO 8859-1 (Latijn-1) vullen 128-255 in. Hoofdstad A is 65, kleine letters a is 97, spatie is 32, en de "invisible" codes 0-31 zijn besturingstekens zoals tab (9), regelinvoer (10) en wagenterugvoer (13).Als u de tabel kunt lezen, kunt u bijna elke tekstcoderingsbug decoderen, veilig aan elk teken in HTML ontsnappen en begrijpen waarom UTF-8, JSON en elke programmeertaal zich gedragen zoals ze dat met tekenreeksen doen.

I' heb jaren besteed aan het bouwen van dingen die leven en sterven op tekstverwerking - een WordPress admin plugin, Laravel API's, React front-ends - en ik kan je vertellen dat een werkend mentaal model van ASCII meer foutopsporingsuren bespaart dan bijna elk ander stukje kennis op laag niveau Deze gids is de versie waarvan ik wou dat iemand me vroeg had overhandigd.

Wat is ASCII en waarom maakt het nog steeds uit?

ASCII staat voor de American Standard Code for Information Interchange. Het werd voor het eerst gestandaardiseerd in 1963 en omgezet in de vorm die we nog steeds gebruiken als ANSI X3.4-1986 (ook internationaal gepubliceerd als ISO/IEC 646), en de netwerkdefinitie die nog steeds wordt aangehaald is dat ook RFC 20 (1969).In de kern is het een opzoektabel: een mapping van de getallen 0 tot en met 127 naar een specifieke set tekens en besturingssignalen Zeven bits, 128 slots, één overeenkomst die de hele computerwereld zou kunnen delen.

Die overeenkomst is de reden dat een tekstbestand dat in 1990 op een Linux-server werd geschreven, vandaag de dag nog steeds correct wordt geopend op een Mac-laptop. Vóór standaard tekencodes had elke fabrikant zijn eigen schema, en het verplaatsen van tekst tussen machines was een vertaalprobleem. ASCII heeft de onderste 128 codes opgelost, en sindsdien is het nooit meer verplaatst.

Wat mensen verbaast is hoeveel van modern computergebruik er nog direct op rust Unicode - de gigantische standaard die emoji, Chinees, Arabisch en elk ander script omvat - maakt opzettelijk de eerste 128 codepunten identiek aan ASCII. UTF-8, de codering die het web aandrijft, codeert die eerste 128 codepunten als enkele bytes met de exacte ASCII-waarden. Dus een gewoon ASCII-tekstbestand is dat wel evenzo een geldig UTF-8 bestand, byte voor byte Wanneer u ASCII begrijpt, heeft u de basis begrepen waarop de rest van de tekstcodering is gebouwd.

Hoe is de ASCII-tabel georganiseerd?

De 128 standaardcodes vallen in een paar natuurlijke groepen, en het kennen van de groep is vaak nuttiger dan het onthouden van een enkele waarde.

Controletekens (0-31 en 127). Dit zijn de niet-afdrukcodes. Ze bevatten instructies in plaats van glyphs: null (0), bel (7), backspace (8), horizontaal tabblad (9), lijninvoer (10), wagenretour (13), ontsnapping (27) en verwijderen (127) zijn degenen die u ' daadwerkelijk zult ontmoeten. Ze zijn ontworpen om teletypemachines aan te sturen, en hun geesten draaien nog steeds alles, van lijnuitgangen in uw bronbestanden tot de ontsnappingsreeksen die uw terminaluitvoer kleuren.

Afdrukbare interpunctie en symbolen (32-47, 58-64, 91-96, 123-126). Ruimte is 32 - de laagst afdrukbare code, en technisch gezien een afdrukteken, ook al toont het niets. De rest zijn de symbolen verspreid over je toetsenbord: ! is 33, @ is 64, ~ is 126.

Cijfers (48-57). De personages 0 doorgaand 9 ga netjes van 48 naar 57. Die volgorde is opzettelijk: trek 48 af van een cijfer's-code en je krijgt de numerieke waarde ervan, dat is hoe bijna elke " een getal uit een string" routine begint.

Hoofdletters (65-90) en kleine letters (97-122). A is 65, Z is 90; a is 97, z is 122. De opening tussen een letter' De hoofdletter- en kleine lettervorm is altijd precies 32.

Het uitgebreide bereik (128-255) is een ander dier, en het & # 39; waar de meeste verwarring leeft - dus het krijgt hieronder zijn eigen gedeelte.

Wat is het verschil tussen ASCII en Extended ASCII?

Standaard ASCII definieert slechts 128 codes omdat het slechts zeven bits gebruikt Maar computers slaan tekst op in bytes van acht bits, waardoor er een geheel extra 128 slots (128-255) ongebruikt blijven door de standaard. " Uitgebreide ASCII" is de overkoepelende term voor de verschillende schema's die deze slots vullen.

De vangst - en het & #39; is een grote - is dat er geen enkele uitgebreide ASCII. verschillende code pagina's wijzen de bovenste 128 codes helemaal anders toe IBM & #39; s code pagina 437 zet daar box-drawing tekens Windows-1252 zet gekrulde citaten en het euro teken daar ISO/IEC 8859-1, bekend als Latin-1, zet geaccentueerde West-Europese letters daar Een byte met waarde 233 is é in Latin-1, maar iets anders geheel in codepagina 437.

Op Toolz.dev laat ik de ISO 8859-1 (Latijn-1) toewijzing zien voor codes 160-255, omdat het een echte gepubliceerde standaard is en het de basis is van de originele HTML-tekenset - wat betekent dat de benoemde HTML-entiteiten op één lijn staan Codes 128-159 in Latin-1 zijn een tweede blok besturingstekens (de "C1" besturingselementen), dus de tool labelt ze als zodanig in plaats van te doen alsof ze ' zijn afdrukbaar.

De praktische les: wanneer iemand zegt " extended ASCII," vraag het altijd welke. Een niet-overeenkomende codepagina is de klassieke oorzaak van de é mojibake zie je wanneer een UTF-8 bestand gelezen wordt als Latin-1, of de ontbrekende-glyph boxen wanneer het omgekeerde gebeurt Begrijpen gegevensprivacy en hoe tools met uw tekst omgaan is één zorg; begrijpen hoe bytes naar karakters verwijzen, is de andere helft die nooit meer verrast wordt door onleesbare tekst.

Waarom verschillen hoofdletters en kleine letters precies 32?

Dit is mijn favoriete stuk ASCII-ontwerp, omdat het ' is geen ongeluk - het 's engineering. De lay-out is zo gekozen dat een letter ' De hoofdletters en kleine letters verschillen alleen in bit 5, dat de waarde 32 heeft. A is 65 (binair 01000001); a is 97 (binair 01100001). Het enige verschil is dat enkele bit.

Die beslissing betekent dat een programma van hoofdletter kan veranderen met één bitsgewijze bewerking in plaats van een opzoektabel. Om een kleine letter te openen, wordt bit 5 gewist (code & ~32); om een hoofdletter één te verkleinen, stel deze in (code | 32); om hoe dan ook van zaak te wisselen, draai het om (code ^ 32). Tientallen jaren van stringbibliotheken zijn op die truc gebouwd vóór Unicode' De complexere casusregels maakten het onveilig voor alles buiten gewone ASCII. Wanneer u door de tabel bladert en merkt dat elke hoofdletter precies 32 onder zijn kleine letter staat, dan zal u ' Kijk naar een beslissing uit de jaren zestig die nog steeds vorm geeft aan de manier waarop software wordt geschreven.

Hoe converteer ik tussen tekens, decimaal, hex en binair?

Elke ASCII-code heeft vier gemeenschappelijke representaties, en het verplaatsen daartussen is een routinematig onderdeel van werk op laag niveau. Hier' hoe ze zich verhouden tot de letter Hpiepsel

Representatie Waarde voor H Waar jij' Ik zal het zien
hoedanigheid H Normale tekst
tientallig 72 String.fromCharCode(72), chr(72)
hexadecimaal 48 Hex stortplaatsen, \x48, URL/percentage codering
acht- 110 Oudere Unix-tools, \110 ontsnappingskracht
tweevoudig 01001000 Bitwise bewerkingen, protocolontwerp

Om een woord uit hex te spellen, neemt u elk paar hex-cijfers als één byte: 48 69 is 72 105 in decimaal, dat wil zeggen Hi. Om de andere kant op te gaan, zoek elk teken op' s code De ASCII-tabel doet beide richtingen - het toont alle vijf kolommen voor elke code, en het zoekvak accepteert een teken, een decimaal getal, een hex-waarde (met of zonder a 0x prefix), een octale of binaire string, of zelfs een HTML-entiteitsnaam, dus typen &, 38, of amp springen allemaal naar het ampersand.

Als u ' routinematig hele tekenreeksen converteert of over getallenbasissen buiten ASCII werkt, zal de binaire vertaler en de Nummer Basisomvormer zijn de begeleidende hulpmiddelen waar ik naar reik De ASCII-tabel is de referentie; die twee zijn de werkbanken.

Waar zijn ASCII-besturingstekens eigenlijk voor?

De niet-drukcodes 0-31 (plus 127) voelen aan als museumstukken, maar verschillende ervan leiden dagelijks je leven.

Lijnvoeding (10) en rijtuigretour (13) zijn de grote twee Op een teletype verplaatste carriage return de printkop terug naar de linkermarge en regelfeed bracht het papier één regel vooruit - twee afzonderlijke fysieke acties Daarom eindigen Windows-tekstbestanden regels met beide (CRLF, 13 en vervolgens 10), terwijl Unix en macOS alleen lijnvoeding gebruiken (LF, 10). Bijna elk " waarom is mijn bestand vol met ^M personages?" bug traceert terug naar deze splitsing Mijn CSV ramp uit de intro was precies dit.

Horizontaal tabblad (9) is het tabteken - een enkele byte die editors weergeven als verschillende spaties. Nul (0) beëindigt tekenreeksen in C en markeert " geen data" in talloze formaten. Ontsnapping (27) introduceert de besturingsreeksen die uw cursor verplaatsen en uw terminal kleuren. Bel (7) ooit belde een echte bel; nu piept of knippert het in uw terminalvenster.

De reden dat een goede tabel deze codes een naam geeft, is van belang: wanneer u een byte 27 in uw gegevens vindt, zal & quot; ESC - Escape" vertelt u onmiddellijk dat u ' naar een terminalcontrolereeks kijkt, en niet naar corrupte tekst. Een ruw nummer laat u raden.

Hoe verhoudt ASCII zich tot HTML-entiteiten en veilig ontsnappen?

Als je schrijft voor het web - en gebouw een solide toolkit voor ontwikkelaars betekent dat u dat zult doen - een handvol ASCII-tekens moet ontsnappen, dus de browser doet dat wel &#39; t heeft ze verkeerd gelezen als opmaak. Het minder-dan-teken < (60), groter-dan > (62), ampersand & (38), en dubbele aanhalingstekens " (34) zijn de gevaarlijke vier. rauw gelaten in HTML kunnen ze je pagina breken of een injectiegat openen; geschreven als entiteiten (&lt;, &gt;, &amp;, &quot;) ze worden weergegeven als letterlijke karakters.

Elke code heeft ook een numerieke HTML-entiteit in het formulier &#code;, dus zelfs een teken zonder benoemde entiteit kan altijd veilig worden geschreven De ASCII-tabel geeft een overzicht van de benoemde entiteit waar deze bestaat en de numerieke vorm anders, en door op de HTML-kolom te klikken, wordt deze rechtstreeks naar uw klembord gekopieerd. Wanneer u een heel markupblok moet coderen of decoderen in plaats van één enkel teken op te zoeken, wordt de HTML-entiteiten tool verzorgt de batch job Voor een diepere rondleiding door de coderingshulpprogramma's die ik dagelijks gebruik, is de Handleiding voor coderingshulpmiddelen loopt door de hele set.

Is de ASCII-tabel hetzelfde als Unicode?

Nee, maar zij &#39; zijn opzettelijk compatibel, en de relatie is de moeite waard om recht te komen Unicode is een veel grotere standaard - meer dan een miljoen mogelijke codepunten, die elk schrijfsysteem plus symbolen en emoji bestrijken. ASCII, met zijn 128 codes, is een kleine subset. Wat hen mooi samen laat spelen, is dat Unicode&#39; de eerste 128 codepunten zijn gedefinieerd als identiek aan ASCII, en UTF-8 codeert precies die 128 als enkele bytes met hun ASCII-waarden.

Het gevolg is elegant: elk geldig ASCII-bestand is automatisch een geldig UTF-8-bestand U hoeft nooit gewone Engelse tekst tussen de twee te converteren Het moment dat u voorbij code 127 stapt - een letter met accenten, een curly-citaat, een emoji - u laat ASCII achter en u &#39; zit stevig in het Unicode-territorium van meerdere bytes, waar één teken twee, drie of vier bytes kan bezetten De Toolz.dev ASCII-tabel behandelt de ASCII- en Latin-1-bereiken rechtstreeks, en de tekst-encoder rapporteert het Unicode-codepunt voor elk teken dat u daarbuiten plakt, zodat u precies kunt zien waar ASCII eindigt en Unicode het overneemt.

Veelgestelde vragen

Wat is ASCII?

ASCII (American Standard Code for Information Interchange) is een standaard voor karaktercodering die letters, cijfers, interpunctie en stuursignalen in kaart brengt aan de getallen 0-127. Het werd in 1963 gestandaardiseerd als ANSI X3.4 en blijft de basis van moderne tekstcoderingen, waaronder UTF-8, waarvan de eerste 128 codepunten identiek zijn aan ASCII.

Wat is de ASCII-waarde van &quot;A&quot;?

De hoofdletter & quot;A&quot; heeft de ASCII-waarde 65 (hex 41, octaal 101, binair 01000001) Kleine letters & quot;a&quot; is 97 - precies 32 hoger - daarom schakelt het omdraaien van bit 5 een letter tussen hoofdletters en kleine letters.

Wat is het verschil tussen ASCII en Extended ASCII?

Standaard ASCII gebruikt 7 bits en definieert 128 codes (0-127). & quot; Uitgebreid ASCII&quot; gebruikt het achtste bit om nog eens 128 codes (128-255) toe te voegen voor letters met accenten, symbolen en tekens voor het tekenen van vakken Er is geen enkele uitgebreide ASCII - verschillende codepagina's wijzen de bovenste helft anders toe Deze tabel toont de ISO 8859-1 (Latijn-1) toewijzing, de basis van de Latin-1 HTML-tekenset.

Wat zijn ASCII-besturingskarakters?

Codes 0–31 en 127 zijn niet-afdrukbare controletekens die instructies bevatten in plaats van zichtbare glyphs. Veel voorkomende zijn onder meer lijnaanvoer (10), slederetour (13), horizontaal tabblad (9), ontsnapping (27) en null (0). Ze bestuurden oorspronkelijk teletype-machines en beëindigen nog steeds lijnen, begrenzen velden en ontsnappingsreeksen aan de terminal van de terminal.

Hoe converteer ik HEX naar ASCII?

Elk paar hex-cijfers vertegenwoordigt één byte, die wordt toegewezen aan één ASCII-code. Hex 48 is 72 in decimaal, wat &quot;H&quot; is; hex 69 is 105, wat &quot;i&quot; - dus 48 69 spreuken & quot;Hi&quot; Doorzoek de ASCII-tabel op basis van de hex-waarde (met of zonder een 0x-voorvoegsel) om het overeenkomende teken onmiddellijk te vinden.

Waarom verschilt hoofdletters van kleine letters door 32 in ASCII?

ASCII is zo ingedeeld dat het enige verschil tussen een letter&#39; de hoofdletters en kleine letters bit 5 is (de waarde 32). &quot;A&quot; is 65 en &quot;a&quot; is 97; &quot;Z&quot; is 90 en &quot;z&quot; is 122. Met dit doelbewuste ontwerp kunnen programma's van hoofdletter veranderen met een enkele bitsgewijze bewerking in plaats van met een opzoektabel.

Is de ASCII-tabel hetzelfde als Unicode?

Niet hetzelfde, maar compatibel Unicode is een veel grotere standaard die meer dan een miljoen codepunten in elk schrijfsysteem bestrijkt De eerste 128 codepunten zijn identiek aan ASCII, en UTF-8 codeert ze als enkele bytes, dus geldige ASCII-tekst is ook geldig UTF-8. De ASCII-tabel bestrijkt de ASCII- en Latin-1-bereiken; de encoder rapporteert Unicode-codepunten voor tekens daarbuiten.

Is mijn tekst privé als ik de ASCII-tabel gebruik?

Ja. De hele tabel wordt in gewoon JavaScript in uw browser gegenereerd en alle tekst die u in de encoder plakt, wordt lokaal verwerkt - deze wordt nooit geüpload, geregistreerd of opgeslagen, en de tool blijft werken zonder netwerkverbinding zodra de pagina is geladen.


Geschreven door Liton, bouwer van [Toolz.dev] (/, WP Adminify, en een lange reeks Laravel en React-projecten die er vroeg of laat allemaal op neerkwamen om de bytes goed te krijgen.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!