ASCII a Unicode jsou oba standardy, které odkazují na digitální reprezentaci textu, konkrétně znaků, které tvoří text. Tyto dva standardy se však výrazně liší a mnoho vlastností odráží jejich příslušné pořadí vytvoření.

Amerika versus vesmír

Americký standardní kodex pro výměnu informací (ASCII) se překvapivě stará o americké publikum psané anglickou abecedou. Zabývá se písmeny bez přízvuku, jako jsou A-Z a a-z, plus malým počtem interpunkčních symbolů a řídicích znaků.

Zejména neexistuje způsob, jak reprezentovat přejatá slova přijatá z jiných jazyků, jako je kavárna v ASCII, aniž by je poangličkoval nahrazením znaků s diakritikou (např. kavárna). Lokalizovaná rozšíření ASCII byla vyvinuta tak, aby vyhovovala potřebám různých jazyků, ale díky těmto snahám byla interoperabilita nepříjemná a jasně rozšiřovala možnosti ASCII.

Naproti tomu Universal Coded Character Set (Unicode) leží na opačném konci stupnice ambicí. Unicode se pokouší uspokojit co nejvíce světových systémů psaní, pokud jde o staré jazyky a oblíbenou sadu expresivních symbolů, emodži.

instagram viewer

Sada znaků nebo kódování znaků?

Jednoduše řečeno, znaková sada je výběr znaků (např.A-Z), zatímco znak kódování je mapování mezi znakovou sadou a hodnotou, kterou lze reprezentovat digitálně (např. A = 1, B = 2).

Standard ASCII je v podstatě obojí: definuje sadu znaků, které představuje, a metodu mapování každého znaku na číselnou hodnotu.

Naproti tomu slovo Unicode se používá v několika různých kontextech, což znamená různé věci. Můžete si to představit jako všeobjímající termín, jako je ASCII, který se týká znakové sady a řady kódování. Ale protože existuje několik kódování, termín Unicode se často používá k označení celkové sady znaků, spíše než toho, jak jsou mapovány.

Velikost

Díky svému rozsahu představuje Unicode mnohem více znaků než ASCII. Standardní ASCII používá 7bitový rozsah ke kódování 128 odlišných postavy. Unicode je na druhé straně tak velký, že k tomu, abychom o tom mluvili, musíme používat jinou terminologii!

Unicode zajišťuje adresovatelnost 1111998 kódové body. Bod kódu je zhruba analogický s prostorem vyhrazeným pro postavu, ale situace je mnohem komplikovanější, než když se začnete zabývat podrobnostmi!

Užitečnější srovnání je, kolik skriptů (nebo systémů pro psaní) je aktuálně podporováno. ASCII samozřejmě zpracovává pouze anglickou abecedu, v podstatě latinské nebo římské písmo. Verze Unicode vyrobená v roce 2020 jde mnohem dále: zahrnuje podporu pro celkem 154 skriptů.

Úložný prostor

7bitový rozsah ASCII znamená, že každý znak je uložen v jednom 8bitovém bajtu; náhradní bit není ve standardním ASCII použit. Díky tomu jsou výpočty velikosti triviální: délka textu ve znacích je velikost souboru v bajtech.

Můžete to potvrdit následující posloupností bash příkazů. Nejprve vytvoříme soubor obsahující 12 písmen textu:

$ echo -n 'Hello, world'> foo

Ke kontrole, zda je text v kódování ASCII, můžeme použít znak soubor příkaz:

$ file foo
foo: ASCII text, bez zakončení řádků

Nakonec pro získání přesného počtu bajtů, které soubor zabírá, použijeme stat příkaz:

$ stat -f% z foo
12

Protože se standard Unicode zabývá mnohem větším rozsahem znaků, soubor Unicode přirozeně zabírá více úložného prostoru. Kolik přesně záleží na kódování.

Opakování stejné sady příkazů z předchozího použití znaku, který nelze reprezentovat v ASCII, poskytuje následující:

$ echo -n '€'> foo
$ file foo
foo: UTF-8 Unicode text, bez zakončení řádků
$ stat -f% z foo
3

Tento jediný znak zabírá 3 bajty v souboru Unicode. Všimněte si, že bash automaticky vytvořil soubor UTF-8, protože soubor ASCII nemůže uložit vybraný znak (€). UTF-8 je zdaleka nejběžnějším kódováním znaků pro Unicode; UTF-16 a UTF-32 jsou dvě alternativní kódování, ale používají se mnohem méně.

UTF-8 je kódování s proměnnou šířkou, což znamená, že používá různé množství úložiště pro různé body kódu. Každý bod kódu bude zabírat jeden až čtyři bajty se záměrem, aby běžnější znaky vyžadovaly méně místa, což poskytuje typ integrované komprese. Nevýhodou je, že stanovení požadavků na délku nebo velikost daného bloku textu se stává mnohem komplikovanějším.

ASCII je Unicode, ale Unicode není ASCII

Pro zpětnou kompatibilitu představuje prvních 128 kódovacích bodů Unicode ekvivalentní znaky ASCII. Protože UTF-8 kóduje každý z těchto znaků do jednoho bajtu, je jakýkoli text ASCII také textem UTF-8. Unicode je nadmnožinou ASCII.

Jak je však uvedeno výše, mnoho souborů Unicode nelze použít v kontextu ASCII. Jakýkoli znak, který je mimo hranice, se zobrazí neočekávaným způsobem, často se substituovanými znaky, které jsou zcela odlišné od těch, které byly zamýšleny.

Moderní využití

Pro většinu účelů je ASCII z velké části považován za starší standard. I v situacích, které podporují pouze latinský skript - kde je plná podpora složitosti Unicode například zbytečné - obvykle je pohodlnější použít UTF-8 a využít jeho ASCII kompatibilita.

Zejména by měly být webové stránky ukládány a přenášeny pomocí UTF-8, což je výchozí nastavení pro HTML5. To je v rozporu s dřívějším webem, který se standardně zabýval ASCII předtím, než byl nahrazen latinkou 1.

Standard, který se mění

Poslední revize ASCII proběhla v roce 1986.

Naproti tomu Unicode je i nadále každoročně aktualizován. Pravidelně se přidávají nové skripty, postavy a zejména nové emodži. Jelikož je přidělen jen malý zlomek z nich, je pravděpodobné, že v dohledné budoucnosti bude celá znaková sada růst a růst.

Příbuzný: Vysvětleno 100 nejpopulárnějších emodži

Vysvětleno 100 nejpopulárnějších emodži

Existuje tolik emodži, že může být obtížné vědět, co to všechno znamená. Zde jsou vysvětleny nejpopulárnější emodži.

ASCII versus Unicode

ASCII sloužil svému účelu po mnoho desetiletí, ale Unicode jej nyní účinně nahradil pro všechny praktické účely jiné než starší systémy. Unicode je větší, a proto expresivnější. Představuje celosvětové společné úsilí a nabízí mnohem větší flexibilitu, i když na úkor nějaké složitosti.

E-mailem
Co je text ASCII a jak se používá?

Text ASCII vypadá záhadně, ale na internetu má mnoho využití.

Související témata
  • Vysvětlení technologie
  • Emojis
  • Žargon
  • Webová kultura
  • Unicode
O autorovi
Bobby Jack (Publikováno 23 článků)

Bobby je technologický nadšenec, který většinu softwarových vývojářů pracoval téměř dvě desetiletí. Je vášnivým hráčem, pracuje jako editor recenzí v časopisu Switch Player Magazine a je ponořen do všech aspektů online publikování a vývoje webových stránek.

Více od Bobbyho Jacka

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Ještě jeden krok…!

V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.

.