Počítač nerozumí písmenům jako „A“ nebo „@“. Rozumí jen číslům. Kódování je proces, kdy každému znaku přiřadíme konkrétní číselný kód (index).
Znaková sada: Seznam všech znaků, které můžeme použít (např. abeceda, číslice, interpunkce).
Kódování: Konkrétní technické pravidlo, jak tyto znaky zapsat v bitech.
ASCII (American Standard Code for Information Interchange) vzniklo v 60. letech v USA.
Délka kódu: 7 bitů (později se ustálilo na 8 bitech, tedy 1 bajtu).
Kapacita: 2^7 = 128 znaků (hodnoty 0–127).
Obsah: Anglická abeceda (bez diakritiky), číslice, základní interpunkce a řídicí znaky (např. klávesa Enter nebo Escape).
Omezení: Zcela chybí znaky jiných jazyků (česká diakritika, azbuka, čínské znaky).
Aby se do tabulky vešla i národní písmena (české „ř“, „š“, „á“), začal se využívat i 8. bit. To zdvojnásobilo kapacitu na 256 znaků.
Vznikl ale chaos, protože existovalo mnoho různých „tabulek“ (kódových stránek):
Windows-1250: Používalo se v systému Windows pro střední Evropu (včetně češtiny).
ISO 8859-2 (Latin 2): Standard pro středoevropské jazyky v Unixu/Linuxu.
Kódování bratří Kamenických: Starý standard pro DOS v Česku a na Slovensku.
Problém „rozsypaného čaje“: Pokud jste soubor uložený v Windows-1250 otevřeli v programu, který očekával Latin 2, místo českých písmen se zobrazily nesmyslné symboly (např. è místo č).
Aby se předešlo chaosu s kódovými stránkami, vznikl Unicode. Jeho cílem je přidělit unikátní číslo každému znaku na světě (všechny abecedy, historická písma, symboly, emoji).
Aktuální stav: Obsahuje přes 140 000 znaků.
Způsoby zápisu (Formáty): Unicode je jen seznam čísel. To, jak se tato čísla zapíší do paměti, určují formáty jako UTF-8, UTF-16 atd.
Dnes nejpoužívanější kódování na světě. Má jednu geniální vlastnost: proměnnou délku znaku.
Princip:
Základní anglické znaky (shodné s ASCII) zabírají 1 bajt.
Česká písmena s diakritikou, řečtina nebo azbuka zabírají 2 bajty.
Emoji nebo exotické znaky zabírají 3 až 4 bajty.
Výhody:
Zpětná kompatibilita s ASCII: Staré texty v angličtině jsou v UTF-8 čitelné bez jakékoli změny.
Úspornost: Pro texty v latince je mnohem úspornější než pevné 4bajtové kódování.
Univerzálnost: Zobrazí vedle sebe češtinu, japonštinu i smajlíka 🍕.