ASCII

ASCII je anglická skratka pre  American Standard Code for Information Interchange (americký štandardný kód pre výmenu informácií). Ide o kódovací systém znakov anglickej abecedy, číslic, netlačiteľných znakov, iných špeciálnych znakov a riadiacich kódov slúžiacich k riadeniu dátového prenosu, k formátovaniu tlače, prípadne k iným účelom.

História

Znaková sada ASCII sa vyvinula zo znakov používaných v ďalekopise, resp. z kódov, ktoré boli pôvodne určené pre obsluhu periférnych zariadení ako napr. tlačiarne. Vývoj začal v roku 1960 a ukončený bol v roku 1963. Avšak až verzia z roku 1967 bola identická s dnešnou. Pri jej vzniku sa vychádzalo z Baudovho kódu a z Murrayovho kódu. Sada najprv obsahovala 128 znakov (od 0 po 127), zapisovala sa pomocou 7 bitov od 0000000 po 1111111. Avšak táto sada 128 znakov a kódov nepostačovala a bola preto rozšírená na 256 znakov so zápisom na 8 bitov. 8 bitová znaková sada ASCII sa niekedy zvykne označovať ako rozšírená (extended) ASCII, alebo EASCII. Prvé verzie vznikali v druhej polovici 70. rokov 20. storočia a celkovo vznikli viac ako dve stovky verzií EASCII, kódových stránok pre MS DOS a prvé verzie MS Windows. V prvej polovici tabuľky (znaky od 0 po 127) sú vždy všetky EASCII zhodné s pôvodnou ASCII, rozdiely v každej znakovej sade sa nachádzali iba v druhej polovici tabuľky znakov od 128 po 255. Medzi najznámejšie a u nás používané patrí znaková sada Latin 2, kódová stránka Windows 1250, ktorá vo svojej druhej polovici (znaky od 128 po 255) obsahuje latinské písmená s diakritickými znamienkami typické pre stredoeurópske jazyky. V 80. rokoch 20. storočia to bola napr. na území Československa pod MS DOS rozšírená znaková sada Kamenických (CP437). Celkovo existuje viac ako dve stovky kódových stránok EASCII pre všetky latinské abecedy, cyrilické abecedy (s azbukou) a mnohé ďalšie abecedy či potreby.  
EASCII tvorí od druhej polovice 70. rokov 20. storočia štandardizovaný, rozšírený a všeobecne uznávaný základ ukladania informácii v elektronickej podobe, pretože každý 1 bajt má 8 bitov (t.j. binárne od 00000000 po 11111111) a teda dekadicky od 000 po 255, resp. hexadecimálne od 00 po FF. Ku koncu 50. rokov a v 60. rokoch 20. storočia nebolo samozrejmé aby jeden bajt (znak či kód) bol kódovaný ôsmimi bitmi. Existovali totiž aj 4-bitové či 6-bitové kódovania a aj pojem bajt (či už znak alebo kód) bol veľmi úzko spätý so samotným hardvérom a jeho princípom fungovania, napr. keď boli na magnetickej páske uložené informácie z diernych štítkov či diernych pások.  
Dnes existuje teda 256 "druhov" bajtov: hexadecimálne od 00 po FF. Jediné čo je potrebné si uvedomiť je, že grafická interpretácia znakov, ktorú reprezentujú bajty s poradovými číslami od 128 po 255 (hexadecimálne od 80 po FF) sa líši podľa aktuálne používanej znakovej sady. 
Vzhľadom na veľmi veľké množstvo znakových sád, ktoré sa líšili v jednotlivých krajinách vo svojej druhej polovici hexadecimálne od 80 po FF, existoval tlak na vývoj takého štandardu, ktorý by bol platný univerzálne a na celom svete. Tým štandardom sa stal Unicode. Jedným z najzásadnejších rozdielov medzi ACSII (či aj EASCII) a Unicode je ten, že znaky v Unicode (aktuálne ich už obsahuje viac ako sto tridsať tisíc) sú kódované viac ako jedným bajtom, keď môžu byť kódované dvoma a troma bajtami (dohodou nie jedným bajtom) a to hexadecimálne od U-00 00 až po U-10 FF FF. 
Pre kódovanie v Unicode existuje niekoľko spôsobov, jeden z nich je napr. veľmi rozšírený UTF-8. Aj keď názov môže byť zavádzajúci že sa jedná o 8-bitové kódovanie iba pre 256 znakov (00 až FF), v skutočnosti UTF-8 dovoľuje Unicode kódovať s premenlivou dĺžkou jedným až štyrmi bajtami (t.j. 8 až 32 bitmi) s istým prebytkom bitov, ktorý sa ukazuje ako výhodný pre ACSII, keďže Unicode nekóduje nič jedným bajtom (ani ASCII od 0 po 127, resp. hexadecimálne od 00 po 7F), minimum sú dva bajty. V Unicode tomu jednoducho predchádzajú nuly U-0000 až U-007F a aj znak zavináča (dekadicky 64, resp. hexadecimálne 40) v Unicode zaberá dohodou dva bajty (hexadecimálne 00 40), zatiaľčo v UTF-8 iba jeden bajt (hexadecimálne 40). Žatiaľ čo Unicode  je maximálne troj-bajtový a UTF-8 maximálne štvor-bajtový, táto výhoda úspory bitov UTF-8 sa stráca za bariérou ACSII (127, hexadecimálne 7F), keďže napr. znak eura zaberá v Unicode dva bajty hexadecimálne 20 AC, v UTF-8 kódovaní Unicodu až tri bajty E2 82 AC. Úspora UTF-8 nad Unicode však prevažuje, keďže väčšina písaných znakov je ACSII (od 0 po 127, resp. hexadecimálne od 00 po 7F). O uvedených faktoch sa možno presvedčiť aj jednoduchým uložením znaku eura (pravý ALT + e) v poznámkovom bloku MS Windows s ukladaním do príslušného kódovania, následne skúmaním ich veľkosti či podrobnej hexadecimálnej podoby. Takto uložené súbory majú však aj svoju niekoľko-bajtovú hlavičku (tá v prípade Unicode môže napr. definovať opačné poradie bajtov).