I dagens värld har ASCII blivit ett ämne av ökande intresse för människor i alla åldrar och bakgrunder. I och med teknikens framsteg och globaliseringen har ASCII blivit en referenspunkt i många människors vardag och påverkar allt från deras konsumtionsbeslut till deras sätt att förhålla sig till andra. Genom historien har ASCII varit föremål för debatt och analys, och genererat oändliga åsikter och perspektiv som försöker förstå dess påverkan på samhället. I den här artikeln kommer vi att utforska nyckelelementen som gör ASCII till ett relevant ämne idag, såväl som dess utveckling över tid och dess inflytande på olika aspekter av det moderna livet.
Den här artikeln behöver källhänvisningar för att kunna verifieras. (2020-12) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. |
ASCII , eller American Standard Code for Information Interchange, är en teckenkodning som används för att representera bokstäver och andra tecken i datorer. Koden använder sju bitar vilket ger plats för 128 olika tecken. ASCII designades för USA:s behov och räcker inte för något annat språk än engelska, eftersom några andra bokstäver än A-Z och a-z inte ingår. ASCII-standarden publicerades första gången 1963.
Med ASCII som grund har olika utvidgningar till 8 bitar gjorts, ofta kallade utökad ASCII (utökad ASCII kallas ibland felaktigt ASCII, och ASCII kallas ibland US-ASCII för att klargöra). Exempel på utökad ASCII är ISO/IEC 8859-serien av teckenkodningar. De äldre kodningarna i Windows (CP1250, CP1252, CP932, m.fl.) och Mac OS (MacRoman, MacJapanese, m.fl.) är även de utvidgningar av ASCII. Dessa utvidgningar har ersatt ASCII i användning (eftersom 8 bitar är tillgängligt överallt numera), men de följer ASCII för de tecken som ingår i ASCII.
Internet startades med ASCII och 7 bitars överföring som grund, vilket gjorde att 8-bitarskoder inte fungerade på nätet och vissa andra sammanhang, därför skapades nationella 7-bitsvarianter av ASCII i nästan alla länder, även i Storbritannien som behövde pundtecknet £, och i Kanada som ville stödja franska. Dessa standarder kallas ISO/IEC 646. ASCII har samma tecken som referensversionen av ISO/IEC 646 plus 7-bitars styrkoderna i ISO/IEC 6429. Först ett gott stycke in på 1990-talet fungerade 8 bitars överföring av till exempel e-mail överallt på internet.
ASCII-utvidgningarna med 8 bitar håller på att ersättas med Unicode, en teckenkodning som använder fler än 8 bitar, och som stöder alla språk. För att lagra Unicode i filer använder man oftast antingen UTF-8 som fungerar som en utökad ASCII (2-4 bytes för icke-ASCII-tecken), eller UTF-16 där tecknen lagras i 2-byte-sekvenser.
Kodpositionerna 00–1F samt 7F (angivna i det hexadecimala talsystemet) används för olika styrtecken, medan de övriga används för skrivbara tecken.
ASCII | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
0x | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI |
1x | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | IS4 | IS3 | IS2 | IS1 |
2x | blank | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
6x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7x | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | DEL |
Styrtecknen utformades på 1960-talet för den tidens behov. Framförallt var det skrivande terminaler (endast tangentbord och skrivare eller elektriska skrivmaskiner med dataanslutning) med hålkortsremsa som styrde utformningen av styrtecknen. Det största problemet som är kvar idag är en otydlighet om hur LF och CR skall användas, vilket skapat olika standarder för textfiler. De skrivande terminalerna krävde CR för att gå längst till vänster och LF för att byta rad, ett av dem i taget på grund av mekaniska begränsningar (operationen krävde väsentligt längre tid än att skriva ut ett enskilt tecken). Bildskärmar har inte det problemet, så man valde till exempel för Multics och Unix att inte ha CR i textfiler, vilket gjorde dem mindre, medan till exempel TRS-80, Apple II och Mac OS Classic valde att lämna bort LF. CP/M, MS-DOS, Windows med flera behöll både CR och LF för radbyte. Detta ger problem vid överföring av textfiler, inklusive mjukvarukällkod, mellan systemen.
Exempel på tillämpningar då styrtecken används:
I textfiler (inkl HTML, C och andra dataspråk) förekommer normalt bara HT, LF, CR.
Tecknen 20–7E är skrivbara tecken, dvs. motsvarar en bokstav eller annat tecken, men styr inte teknisk hantering av texten särskilt. Placeringen för tecken som inte är bokstäver eller siffror har i huvudsak styrts av placeringen på dåvarande tangentbord på skrivmaskiner och datorer i USA.
Eftersom de svenska tecknen saknades så fanns även två svenska varianter, som båda fanns med i standarden ISO/IEC 646. Observera att å, ä och ö inte kommer i svensk bokstavsordning, något som gjorde sortering mer komplicerat och långsammare, men ökade kompatibilitet med norsk/dansk och tysk ISO-646. (Men den komplikationen finns även för engelska, då stora och små bokstäver normalt inte görs primär skillnad på i alfabetisk sortering, även om det lätt implementerades med programkoden x & 0x1F
.) Styrtecknen och tecknen inom 20-3F är samma som ASCII. $ ersattes av ¤.
ISO/IEC 646, svensk variant, endast 20-7F visade | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
2x | blank | ! | " | # | ¤ | % | & | ' | ( | ) | * | + | , | - | . | / |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5x | P | Q | R | S | T | U | V | W | X | Y | Z | Ä | Ö | Å | ^ | _ |
6x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7x | p | q | r | s | t | u | v | w | x | y | z | ä | ö | å | ~ | DEL |
Det fanns parallellt en variant av den i Sverige, där @ ersatts av É, ^ av Ü, ` av é och ~ av ü för att stödja ord som "idé" och namn med é och ü.
ISO/IEC 646, svensk variant 2, endast 20-7F visade | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
2x | blank | ! | " | # | ¤ | % | & | ' | ( | ) | * | + | , | - | . | / |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4x | É | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5x | P | Q | R | S | T | U | V | W | X | Y | Z | Ä | Ö | Å | Ü | _ |
6x | é | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7x | p | q | r | s | t | u | v | w | x | y | z | ä | ö | å | ü | DEL |
De icke-engelska 7-bitarsvarianterna hade sina problem eftersom amerikanska system kunde behöva de tecken som saknas, till exempel vid programmering:
{ a='\n'; }
ä aÄiÅ='Ön'; å
Svensk 7 bits-ASCII används delvis fortfarande inom ekonomi och redovisning. Man ser där oftast inga större behov av att stödja andra språk än svenska (och engelska i samband med internationella överföringar). Exempelvis vid överföring av pengar mellan svenska banker fungerar bara A-Ö i texten.