Az ASCII (ejtsd: az-kee, amerikaiul ass-key) az angol ábécé, számok és más gyakori szimbólumok számítógépes ábrázolására szolgáló standard karakterkód. Gyakran mondják, hogy az ASCII a számítógépek vagy a szövegszerkesztés alapját képező karaktertáblázata. Az elnevezés az American Standard Code for Information Interchange rövidítése. Az ASCII-t az 1960-as évek elején dolgozták ki az amerikai szabványosító szervezetek (az ASA/ANSI X3 bizottság) keretében; az első változat 1963-ban jelent meg, majd többször módosították. A rendszer kialakulása részben a korábbi távírórendszerek és írógépek kódjaira épült.

Mit határoz meg az ASCII?

Az ASCII hivatalosan egy 7 bites kódot definiál, amely 128 kóppontot (0–127) tartalmaz. Ezek közül a 32 első (0–31) és a 127-es számú kóppont vezérlő karakter (például sorvég, tabulátor, csengő), míg a 32–126 közötti kóppontok nyomtatható karakterek (szóköz, betűk, számok, írásjelek). A gyakorlatban az ASCII-t gyakran tárolták és továbbították 8 bites bájtokban: ilyenkor az egyik bitet (a legmagasabb helyiértéket) vagy paritásbitként használták, vagy egyszerűen 0-ra állították. Ez a megoldás tette lehetővé az ASCII kompatibilitását a korábbi soros vonalakon és modemeken, ahol a hibadetektáláshoz paritás alkalmazása hasznos volt.

Példák és gyakori tévedések

Például a nagybetűs A kódja az ASCII-ban 65 decimális, amely 0x41 hexadecimálisan, és 7 bites binárisan 1000001. (Ha egy bájtot használunk, akkor ez gyakran 01000001 formában szerepel az 8 bitre kiegészítve.) Hasonlóan a B = 1000010 (66), C = 1000011 (67). Fontos megjegyezni, hogy az ASCII önmagában 7 bites — a „8 bit” említése gyakran az átvitel vagy tárolás gyakorlati részleteire, illetve a kiterjesztett, 8 bites kódolásokra (lásd lent) vonatkozik.

Vezérlő karakterek (néhány példa)

  • NUL (0): nullacharakter, gyakran karakterláncok lezárására használták programozási környezetben
  • BEL (7): csengő, eredetileg hangjelzésre szolgált
  • BS (8): backspace, kurzor visszavonására
  • HT (9): horizontális tabulátor
  • LF (10): line feed, új sor (Unix rendszerek alapja)
  • CR (13): carriage return, kocsi vissza (régi nyomtatók/Windows CR+LF kombinációja)
  • ESC (27): escape, vezérlési sorok kezdetére használható
  • DEL (127): delete, eredetileg lyukasztó szalagon törlésre tervezték

A legtöbb vezérlő karaktert ma nem az eredeti hardveres célra használják, de néhány (például LF, CR, HT) még mindig kulcsfontosságú a szövegformátumok és kommunikációs protokollok kezelésében. Az ASCII nem tartalmaz formázási vezérlést (például félkövér vagy dőlt stílus), ezért a dokumentumok megjelenésének formázását külön protokolloknak vagy kiterjesztéseknek kell biztosítani.

Kiterjesztések és az ASCII helye ma

Az idővel megjelentek különféle 8 bites „kiterjesztett ASCII” kódolások (például CP437, ISO 8859 sorozat, Windows-1252), amelyek további 128 karaktert definiáltak (128–255), így helyi ékezetes betűket és speciális szimbólumokat is tartalmaztak. A modern világban a Unicode (például UTF-8) vált uralkodóvá: a Unicode magában foglalja az ASCII-t (a 0–127 tartomány bitről bitre azonos), és sokkal több nyelv és jel ábrázolását teszi lehetővé.

Gyakorlati értelemben, amikor valaki azt mondja, hogy egy fájl „ASCII-ben van”, általában azt érti alatta, hogy egyszerű szöveget tartalmaz, azaz csak alapvető (vagy leginkább csak) ASCII karaktereket használ, nincsenek beágyazott bináris vagy speciális formázások.

Rövid történeti kitekintés

Az ASCII szabvány kidolgozása az adatcserét és eszközök közötti interoperabilitást volt hivatott elősegíteni a hatvanas években. A szabvány többször frissült, és az eredeti telekommunikációs, majd számítógépes környezetekben vált szabvánnyá. Ma már elsősorban történeti és kompatibilitási szerepe van, de továbbra is alapvető fogalom a számítógépes szövegkezelésben és hálózati protokollokban.

Ha részletesebb, kóppontok szerinti táblázatra van szükség vagy konkrét vezérlők működését szeretné megismerni, azt külön táblázatos formában is érdemes bemutatni, mivel az ASCII egyszerre egyszerű és történetileg gazdag szabvány.