Jaký je rozdíl mezi textem ASCII a Unicode?

Jaký je rozdíl mezi textem ASCII a Unicode?

ASCII a Unicode jsou standardy, které odkazují na digitální reprezentaci textu, konkrétně znaky, 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í kód pro výměnu informací (ASCII) nepřekvapivě vyhovuje americkému publiku a píše v anglické abecedě. Zabývá se nezvýrazněnými písmeny, jako jsou A-Z a a-z, plus malým počtem interpunkčních symbolů a kontrolních znaků.





Zejména neexistuje způsob, jak reprezentovat přejatá slova převzatá z jiných jazyků, například káva v ASCII, bez jejich anglicizování 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 škály ambicí. Unicode se pokouší vyhovět co největšímu počtu světových systémů psaní, a to do té míry, že pokrývá starověké jazyky a všechny oblíbené sady expresivních symbolů, emoji.

Znaková sada nebo kódování znaků?

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



Standard ASCII je ve skutečnosti obojí: definuje sadu znaků, které představuje, a způsob mapování každého znaku na číselnou hodnotu.

Naproti tomu slovo Unicode se v několika různých kontextech používá k označení různých věcí. Můžete si to představit jako všeobjímající termín, jako ASCII, odkazující na znakovou sadu a řadu kódování. Protože však existuje několik kódování, termín Unicode se často používá k označení celkové sady znaků, nikoli k tomu, jak jsou mapovány.





Velikost

Unicode díky svému rozsahu představuje mnohem více znaků než ASCII. Standardní ASCII používá 7bitový rozsah ke kódování 128 odlišných znaky . Unicode je na druhou stranu tak velký, že musíme používat jinou terminologii, abychom o tom mohli mluvit!

Unicode zajišťuje 1 111 998 adresovatelných kódové body. Kódový bod je zhruba analogický s prostorem vyhrazeným pro postavu, ale situace je mnohem komplikovanější, než když začnete pronikat do detailů!





Užitečnějším porovnáním 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 vytvořená v roce 2020 jde mnohem dále: zahrnuje podporu 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 je ve standardním ASCII nepouž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í sekvencí příkazů bash. Nejprve vytvoříme soubor obsahující 12 písmen textu:

jak změnit svůj výchozí účet Google
$ echo -n 'Hello, world' > foo

Chcete -li zkontrolovat, zda je text v kódování ASCII, můžeme použít soubor příkaz:

$ file foo
foo: ASCII text, with no line terminators

Nakonec, abychom získali přesný počet bajtů, které soubor zabírá, použijeme Stát příkaz:

$ stat -f%z foo
12

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

Opakováním stejné sady příkazů dříve pomocí znaku, který nelze v ASCII reprezentovat, získáte následující:

$ echo -n '€' > foo
$ file foo
foo: UTF-8 Unicode text, with no line terminators
$ stat -f%z foo
3

Tento jeden znak zabírá 3 bajty v souboru Unicode. Všimněte si toho, že bash automaticky vytvořil soubor UTF-8, protože soubor ASCII nemůže uložit zvolený 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 využí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, že více běžných znaků vyžaduje méně místa a poskytne typ vestavěné komprese. Nevýhodou je, že určení požadavků na délku nebo velikost daného kusu textu se stává mnohem komplikovanější.

ASCII je Unicode, ale Unicode není ASCII

Pro zpětnou kompatibilitu představuje prvních 128 bodů kódu Unicode ekvivalentní znaky ASCII. Protože UTF-8 kóduje každý z těchto znaků jediným bajtem, jakýkoli text ASCII je 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 do značné míry považován za starší standard. I v situacích, které podporují pouze latinský skript-kde je například úplná podpora složitosti Unicode zbytečná-je obvykle pohodlnější používat UTF-8 a využívat jeho kompatibilitu s ASCII.

dělá to zdarma copypasta

Webové stránky by měly být zejména ukládány a přenášeny pomocí UTF-8, což je výchozí nastavení pro HTML5. To je na rozdíl od dřívějšího webu, který se ve výchozím nastavení zabýval ASCII, než byl nahrazen latinou 1.

Standard, který se mění

Poslední revize ASCII proběhla v roce 1986.

Naproti tomu Unicode je nadále každoročně aktualizován. Pravidelně se přidávají nové skripty, postavy a zejména nová emoji. Pouze s malým zlomkem z nich bude celá znaková sada v dohledné budoucnosti pravděpodobně růst a růst.

Příbuzný: Vysvětleno 100 nejpopulárnějších 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 výraznější. Představuje celosvětové úsilí o spolupráci a nabízí mnohem větší flexibilitu, i když na úkor určité složitosti.

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

Text ASCII vypadá tajemně, ale má mnoho využití po internetu.

Číst dále
Související témata
  • Technologie vysvětlena
  • Emodži
  • Žargon
  • Webová kultura
  • Unicode
O autorovi Bobby Jack(58 článků zveřejněno)

Bobby je technologický nadšenec, který pracoval jako vývojář softwaru po téměř dvě desetiletí. Je zapálený pro hraní her, pracuje jako editor recenzí časopisu Switch Player Magazine a je ponořen do všech aspektů online publikování a webového vývoje.

Více od Bobbyho Jacka

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

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru