ASCII (udtales az-kee, ass-key hvis det er amerikansk) er en tabel med tegn til computere. Det er en binær kode, der anvendes af elektronisk udstyr til at håndtere tekst med det engelske alfabet, tal og andre almindelige symboler. ASCII er en forkortelse for American Standard Code for Information Interchange (amerikansk standardkode for informationsudveksling). ASCII blev udviklet i 1960'erne og var baseret på tidligere koder, der blev brugt af telegrafisystemer.

Hvad indeholder ASCII?

ASCII definerer i alt 128 tegn — nummereret fra 0 til 127. Disse inkluderer både udskrivbare tegn (bokstaver, tal, tegnsætning) og såkaldte kontroltegn, som ikke udskrives, men i stedet styrer behandling af tekst (fx ny linje eller tabulator). De udskrivbare tegn ligger typisk i området 32–126, mens kontroltegnene ligger i 0–31. Kodepunkt 127 er DEL (delete).

Nogle eksempler på koder:

  • Stor bogstav A: decimal 65, hex 0x41, binært 1000001 (7-bit). I en 8-bit byte ofte skrevet som 01000001.
  • Små bogstav a: decimal 97, binært 1100001.
  • Tallet 0: decimal 48.
  • Mellemrum (space): decimal 32.

Kontroltegn (udvalgte)

Kontroltegn var vigtige i ældre linebaserede systemer og serielle forbindelser. Nogle almindelige kontroltegn er:

  • NUL (0) — ofte brugt som strengterminator i C-programmering
  • LF / Line Feed (10) — ny linje
  • CR / Carriage Return (13) — vognretur
  • TAB (9) — tabulator
  • ESC (27) — escape
  • DEL (127) — slet
De fleste af disse anvendes ikke længere til deres oprindelige formål i moderne applikationer, men nogle (som LF og CR) bruges stadig til at markere linjeskift i forskellige systemer.

Bits, bytes og paritetsbit

ASCII er i sin oprindelige form en 7-bit-kode, hvilket giver 128 mulige værdier. Alligevel blev ASCII-tegn ofte gemt og overført i 8-bit bytes, hvor den ekstra bit blev brugt til formål som paritetsbit til fejlregistrering ved seriel kommunikation. Derfor møder man ofte beskrivelser, hvor ASCII virker som en 8-bit kode — enten fordi der er tilføjet en paritetsbit, eller fordi man bruger udvidede varianter, men selve ASCII-standarden dækker de 7 laveste bits (0–127).

Historie og varianter

ASCII blev standardiseret i begyndelsen af 1960'erne og vedligeholdt gennem amerikanske standardiseringsorganer (fx ANSI/ASA). Fordi ASCII kun dækker det grundlæggende engelske alfabet, opstod der senere mange 8-bit udvidelser (ofte kaldet "extended ASCII"), som benyttede den ekstra ottende bit til at tilføje lokale bogstaver og specialtegn. Kendte eksempler på 8-bit varianter er ISO-8859-1 (Latin-1) og Windows-1252.

ASCII i dag

Selvom moderne systemer i høj grad er gået over til Unicode for at kunne repræsentere alle verdens skriftsprog, lever ASCII videre i praksis. De første 128 kodepunkter i Unicode er identiske med ASCII, og i UTF-8-kodning repræsenteres disse tegn som enkeltbyte med samme værdier — derfor er ASCII-tekst gyldig UTF-8-tekst. Når man i dag taler om en fil som "ASCII" menes ofte blot, at det er almindelig tekst uden formatering.

Begrænsninger

Limitationen ved ASCII er manglen på diakritiske tegn og ikke-engelske bogstaver. Det gør ASCII uegnet til mange sprog uden udvidelser eller Unicode. Til gengæld er ASCII stadig enkel, effektiv og bagudkompatibel med mange ældre systemer og protokoller.

Teknisk note

Når man arbejder med talrepræsentationer kan man møde forskellige baser: ASCII-koder angives ofte i decimal, i hexadecimaltal eller i binær. En ASCII-værdi kan fx skrives som decimal 65, hex 41 eller binært 1000001 (7-bit) — og som 8-bit byte 01000001, hvis den ekstra bit benyttes eller er nul.

ASCII bruges fortsat i mange tekniske sammenhænge og er grundlaget for senere tekstkodningsstandarder. Som formatformidler betyder det, at forståelsen af ASCII er nyttig for at forstå, hvordan tekst repræsenteres og overføres i computere og netværk.