ASCII-tabellen: hur 128 tal blev grunden för text
ASCII, kort för American Standard Code for Information Interchange, är kodningen som lärde datorer att komma överens om vad en bokstav är. Publicerad 1963 och förfinad under 1960-talet, kopplar den varje grundläggande tecken i engelsk text, siffrorna och en handfull kontrollsignaler till tal som en maskin kan lagra och överföra. När du trycker på tangenten för ett stort A lagrar din dator inte en form, den lagrar talet 65. ASCII är uppslagstabellen som gör att det talet betyder A överallt det färdas.
Standarden är känt kompakt. ASCII är en 7-bitars kod, vilket innebär att varje tecken ryms inom sju binära siffror och hela repertoaren omfattar exakt 2 upphöjt till 7, eller 128 distinkta kodpunkter numrerade 0 till 127. Den ekonomin var medveten. Tidiga teleprintrar och modem var långsamma och dyra, så varje bit räknades. Sju bitar räckte för att täcka versaler och gemener i det latinska alfabetet, de tio siffrorna, vanliga skiljetecken och de signaltecken som höll enheter synkroniserade, med en bit över som många system använde för felkontroll.

Två hälfter: kontrolltecken och skrivbara tecken
Tabellen delas tydligt in i två regioner. Koderna 0 till 31, plus kod 127 (DEL), är kontrolltecknen. Dessa skriver inte ut något tecken på skärmen. Istället instruerar de en enhet att göra något: kod 9 är ett horisontellt tabbtecken, kod 10 är radmatningen som flyttar till en ny rad, kod 13 är vagnreturen, och kod 7 är klockan som en gång fick en terminal att pipa hörbart. Totalt finns trettiotre av dessa signalkoder, och även om många idag är historiska kuriositeter är radmatning, vagnretur och tabb fortfarande grundläggande för hur textfiler formateras idag.
Koderna 32 till 126 är de skrivbara tecknen, nittiofem av dem totalt. Kod 32 är blanksteget, som räknas som skrivbart eftersom det flyttar markören framåt trots att det inte visar något. Därifrån får du skiljetecken och symboler, siffrorna 0 till 9 på koderna 48 till 57, versalerna A till Ö på 65 till 90, och gemenerna a till ö på 97 till 122. En elegant egenskap följer av denna layout: gemen och versal av samma bokstav skiljer sig med exakt 32, vilket är anledningen till att en enda bit avgör versalläge. Dessa mönster är inga tillfälligheter, de konstruerades så att sortering och skiftlägeskonvertering kunde göras med enkel aritmetik.
Decimal, hexadecimal och binär: tre vyer av samma tal
Varje ASCII-kod är bara ett tal, och du kommer se det skrivet på tre sätt. Decimal är den vardagliga bas-10-formen, så A är 65. Hexadecimal, bas 16, är formen programmerare tar till eftersom den stämmer överens med byte: A är 0x41, och det skrivbara intervallet går från 0x20 till 0x7E. Binärt, bas 2, är formen hårdvaran faktiskt lagrar, så A är 1000001 fördelat på sju bitar. Samma tecken, tre notationer, och att flyta mellan dem är en grundläggande färdighet när du läser minnesdumpar eller nätverkstrafik. Om du arbetar med dessa omvandlingar ofta håller den bredare uppsättningen referenstabeller på speedor.net mappningarna ett klick bort.

Var ASCII fortfarande spelar roll
Det vore ett misstag att arkivera ASCII som historia. Den lever i det dagliga arbetet hos alla som rör vid kod. Programmeringsspråk behandlar strängliteraler, källkodsfiler och protokollnyckelord som ASCII på bytenivå. Nätverksprotokoll som HTTP-huvuden, SMTP och många konfigurationsformat definieras i ASCII så att de förblir läsbara för människor. När en sträng ser korrupt ut tar utvecklare till en hexvisare och läser råa byte mot ASCII-tabellen för att upptäcka ett felplacerat kontrolltecken eller ett fel radslutstecken. URL-kodning, Base64 och escape-sekvenser bygger alla på ASCII-värden. För den som felsöker kodningsbuggar gör en snabbreferens bredvid dina utvecklarverktyg en mystisk byte till ett självklart svar.
Från ASCII till Unicode och UTF-8
ASCII hanterade engelska perfekt och nästan inget annat. Ett tak på 128 tecken kan inte rymma accenttecken, kyrilliska, kinesiska, arabiska eller emoji. Unicode löste det genom att tilldela ett unikt tal, kallat en kodpunkt, till varje tecken i varje skriftsystem, nu långt över hundra tusen av dem. Avgörande är att Unicode är en katalog över tecken, inte ett lagringsformat, så den behöver en kodning för att omvandla dessa kodpunkter till byte.
UTF-8 är den kodningen, och det är anledningen till att ASCII aldrig egentligen försvann. UTF-8 använder en till fyra byte per tecken, och den designades så att kodpunkterna 0 till 127, hela ASCII-intervallet, lagras i en enda byte identisk med vanlig ASCII. Det gör UTF-8 perfekt bakåtkompatibel: varje giltig ASCII-fil är redan en giltig UTF-8-fil. Tecken över 127 använder ytterligare byte. Denna eleganta kompatibilitet är en stor anledning till att UTF-8 nu driver den överväldigande majoriteten av webben. Kort sagt, ASCII är den ursprungliga kärnan med 128 tecken, Unicode är den universella katalogen som innehåller den, och UTF-8 är kodningen som bär båda samtidigt som ASCII-text förblir oförändrad byte för byte.
Vanliga frågor
Hur många tecken finns i ASCII-tabellen?
Standard-ASCII definierar 128 tecken, numrerade 0 till 127. Av dessa är 95 skrivbara tecken inklusive blanksteget, och 33 är kontrolltecken som signalerar till enheter istället för att skriva ut ett tecken.
Vad är skillnaden mellan kontrolltecken och skrivbara tecken?
Kontrolltecken, koderna 0 till 31 plus 127, instruerar en enhet att göra något som en radmatning eller tabb och producerar inget synligt tecken. Skrivbara tecken, koderna 32 till 126, är bokstäverna, siffrorna, skiljetecknen och blanksteget du faktiskt ser på skärmen.
Varför är ASCII en 7-bitars kod?
Sju bitar ger exakt 128 kombinationer, vilket räckte för att täcka engelska bokstäver, siffror, skiljetecken och kontrollsignaler samtidigt som bandbredd sparades på tidig långsam hårdvara. Den åttonde biten i en byte reserverades ofta för paritetsfelkontroll.
Vad är ASCII-koden för bokstaven A?
Stort A är decimal 65, hexadecimal 0x41 och binärt 1000001. Litet a är decimal 97, exakt 32 högre, ett inbyggt mönster som gör att skiftlägeskonvertering kan ske med enkel aritmetik.
Är ASCII samma sak som Unicode?
Nej. ASCII täcker 128 tecken, medan Unicode katalogiserar över hundra tusen tecken i varje skriftsystem. ASCII är i praktiken de första 128 kodpunkterna i Unicode, så det är en liten delmängd av den större standarden.
Hur relaterar UTF-8 till ASCII?
UTF-8 är en kodning för Unicode som lagrar kodpunkterna 0 till 127 i en enda byte identisk med ASCII. Det gör varje ASCII-fil till en giltig UTF-8-fil, vilket är anledningen till att UTF-8 är bakåtkompatibel och dominerar den moderna webben.
