Vad är ASCII?
ASCII (American Standard Code for Information Interchange) är en teckenkodningsstandard som tilldelar varje tecken ett numeriskt värde. Standard ASCII täcker 128 tecken (0–127) och inkluderar engelska bokstäver, siffror, skiljetecken och styrtecken. Det är grunden för all modern teckenkodning.
Bokstaven 'A' har ASCII-värde 65 (decimalt) = 41 (hexadecimalt) = 1000001 (binärt). Gemena 'a' är 97. Skillnaden mellan stora och små bokstäver är alltid 32 — ett faktum som utnyttjas i enkel teckensökning och sortering.
Vad är Unicode?
Unicode är en utvidgning av ASCII som täcker över 140 000 tecken från världens alla skriftsystem. Varje tecken tilldelas ett kodpunkt (code point) i formatet U+XXXX. Unicode löste problemet att ASCII bara täckte engelska tecken och inte stödde t.ex. å, ö, ä, kinesiska tecken eller emojis.
UTF-8 är den vanligaste kodningen av Unicode och är bakåtkompatibel med ASCII — de första 128 tecknen är identiska. UTF-8 används på över 97 % av alla webbsidor. Se vår talbas-omvandlare för att omvandla Unicode-kodpunkter mellan decimalt och hexadecimalt.
Viktiga ASCII-värden att känna till
Det finns några ASCII-värden som programmerare stöter på regelbundet. Att memorera de viktigaste sparar tid vid felsökning och teckensökning.
- 48–57: Siffror '0'–'9' (decimalt)
- 65–90: Stora bokstäver 'A'–'Z'
- 97–122: Små bokstäver 'a'–'z'
- 32: Mellanslag (space)
- 10: Radbrytning (newline, \n)
- 13: Carriage return (\r)
- 0: Null-tecken (strängslutt i C)
Styrtecken och specialtecken
ASCII-värden 0–31 och 127 är styrtecken som inte är utskrivbara. De används för att styra terminaler och kommunikation. Vanliga exempel är TAB (9), LF/newline (10), CR (13) och ESC (27). I strängliteraler skrivs de som escape-sekvenser: \t, \n, \r.
Vill du se hur tecken representeras i binärt och hexadecimalt? Kombinera med vår talbas-omvandlare för att omvandla ASCII-värdet vidare. Vill du förstå bitmask-operationer på teckenvärden? Se bitvärde-kalkylatorn.
UTF-8 och teckenstorlek
UTF-8 är variabellängdskodning — ett ASCII-tecken tar 1 byte, de flesta europeiska tecken tar 2 bytes, kinesiska och japanska tecken tar 3 bytes, och emojis tar vanligtvis 4 bytes. Det är viktigt att känna till när du räknar stränglängd i kod — längden i bytes är inte alltid samma som antalet tecken.