Aký je rozdiel medzi textom ASCII a Unicode?

Aký je rozdiel medzi textom ASCII a Unicode?

ASCII a Unicode sú štandardy, ktoré sa týkajú digitálnej reprezentácie textu, konkrétne znakov, ktoré tvoria text. Tieto dva štandardy sú však výrazne odlišné a mnohé vlastnosti odrážajú ich príslušné poradie vytvorenia.





Amerika versus vesmír

Americký štandardný kód pre výmenu informácií (ASCII) nie je prekvapením, že slúži americkému publiku a píše v anglickej abecede. Zaoberá sa písmenami bez prízvuku, ako sú A-Z a a-z, plus malým počtom symbolov interpunkcie a riadiacich znakov.





Zvlášť neexistuje spôsob, ako reprezentovať prevzaté slová prevzaté z iných jazykov, ako napr káva v ASCII bez ich poangličtenia nahradením znakov s diakritikou (napr. kaviareň ). Lokalizované rozšírenia ASCII boli vyvinuté tak, aby vyhovovali potrebám rôznych jazykov, ale vďaka tomuto úsiliu bola interoperabilita nepríjemná a zjavne sa tým rozšírili možnosti ASCII.





Naproti tomu Universal Coded Character Set (Unicode) leží na opačnom konci škály ambícií. Unicode sa pokúša uspokojiť čo najviac svetových systémov písania do tej miery, že pokrýva staroveké jazyky a každý obľúbený súbor expresívnych symbolov, emoji.

Znaková sada alebo kódovanie znakov?

Zjednodušene povedané, znaková sada je výberom znakov (napr. A-Z), zatiaľ čo kódovanie znakov je mapovanie medzi znakovou sadou a hodnotou, ktorú je možné digitálne znázorniť (napr. A = 1, B = 2).



Štandard ASCII je v skutočnosti oboje: definuje množinu znakov, ktoré predstavuje, a spôsob mapovania každého znaku na číselnú hodnotu.

Naproti tomu slovo Unicode sa používa v niekoľkých rôznych kontextoch na označenie rôznych vecí. Môžete si to predstaviť ako všestranný termín, ako napríklad ASCII, odkazujúci na znakovú sadu a množstvo kódovaní. Pretože však existuje niekoľko kódovaní, termín Unicode sa často používa na označenie celého súboru znakov, a nie na spôsob ich mapovania.





Veľkosť

Unicode kvôli svojmu rozsahu predstavuje oveľa viac znakov ako ASCII. Štandardný ASCII používa 7-bitový rozsah na kódovanie 128 odlišných postavy . Unicode je na druhej strane taký veľký, že na to, aby sme o ňom mohli hovoriť, musíme použiť inú terminológiu!

Unicode zaisťuje 1 111 998 adresovateľných kódové body. Kódový bod je zhruba analogický s priestorom vyhradeným pre postavu, ale situácia je oveľa komplikovanejšia, keď sa začnete zaoberať podrobnosťami!





Užitočnejšie porovnanie je, koľko skriptov (alebo systémov na zápis) je v súčasnosti podporovaných. ASCII samozrejme ovláda iba anglickú abecedu, v podstate latinské alebo rímske písmo. Verzia Unicode vyrobená v roku 2020 ide ešte ďalej: obsahuje podporu pre celkom 154 skriptov.

Skladovanie

7-bitový rozsah ASCII znamená, že každý znak je uložený v jednom 8-bitovom bajte; náhradný bit je v štandardnom ASCII nepoužitý. Vďaka tomu sú výpočty veľkosti triviálne: dĺžka textu v znakoch je veľkosť súboru v bajtoch.

Môžete to potvrdiť nasledujúcou sekvenciou príkazov bash. Najprv vytvoríme súbor obsahujúci 12 písmen textu:

Bsod kritický proces zomrel Windows 10
$ echo -n 'Hello, world' > foo

Na kontrolu, či je text v kódovaní ASCII, môžeme použiť súbor príkaz:

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

Nakoniec, aby sme získali presný počet bajtov, ktoré súbor zaberá, použijeme štát príkaz:

$ stat -f%z foo
12

Pretože štandard Unicode pracuje s oveľa väčším rozsahom znakov, súbor Unicode prirodzene zaberá viac úložného priestoru. Koľko presne závisí od kódovania.

Opakovaním tej istej sady príkazov predtým pomocou znaku, ktorý nemôže byť reprezentovaný v ASCII, získate nasledujúce:

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

Tento jeden znak zaberá 3 bajty v súbore Unicode. Všimnite si toho, že bash automaticky vytvoril súbor UTF-8, pretože súbor ASCII nemôže uložiť zvolený znak (€). UTF-8 je zďaleka najbežnejšie kódovanie znakov pre Unicode; UTF-16 a UTF-32 sú dve alternatívne kódovania, ale používajú sa oveľa menej.

UTF-8 je kódovanie s variabilnou šírkou, čo znamená, že používa rôzne množstvo úložného priestoru pre rôzne body kódu. Každý bod kódu zaberie jeden až štyri bajty so zámerom, že bežnejšie znaky vyžadujú menej miesta a poskytujú typ vstavanej kompresie. Nevýhodou je, že stanovenie požiadaviek na dĺžku alebo veľkosť daného bloku textu sa stáva oveľa komplikovanejším.

ASCII je Unicode, ale Unicode nie je ASCII

Kvôli spätnej kompatibilite predstavuje prvých 128 kódových bodov Unicode ekvivalentné znaky ASCII. Pretože UTF-8 kóduje každý z týchto znakov jediným bajtom, akýkoľvek text ASCII je tiež textom UTF-8. Unicode je nadmnožinou ASCII.

Ako je však uvedené vyššie, mnoho súborov Unicode nemožno použiť v kontexte ASCII. Akýkoľvek znak, ktorý je mimo hraníc, sa zobrazí neočakávaným spôsobom, často s nahradenými znakmi, ktoré sú úplne odlišné od zamýšľaných.

Moderné použitie

Vo väčšine prípadov je ASCII do značnej miery považovaný za starý štandard. Aj v situáciách, ktoré podporujú iba latinské písmo-kde napríklad nie je potrebná úplná podpora zložitosti Unicode-je zvyčajne pohodlnejšie používať UTF-8 a využívať výhody jeho kompatibility s ASCII.

aplikácia, v ktorej môžete spoločne sledovať filmy

Webové stránky by mali byť predovšetkým ukladané a prenášané pomocou protokolu UTF-8, ktorý je predvoleným nastavením pre HTML5. To je v kontraste k predchádzajúcemu webu, ktorý sa v predvolenom nastavení zaoberal ASCII, a ktorý bol nahradený latinkou 1.

Štandard, ktorý sa mení

Posledná revízia ASCII sa uskutočnila v roku 1986.

Naproti tomu Unicode sa naďalej každoročne aktualizuje. Pravidelne sa pridávajú nové skripty, postavy a najmä nové emoji. Keďže je pridelený iba malý zlomok z nich, celý súbor znakov bude v dohľadnej budúcnosti pravdepodobne rásť a rásť.

Súvisiace: Vysvetlených 100 najobľúbenejších emodži

ASCII verzus Unicode

ASCII slúžil svojmu účelu mnoho desaťročí, ale Unicode ho teraz účinne nahradil na všetky praktické účely okrem starších systémov. Unicode je väčší, a preto je výraznejší. Predstavuje celosvetové úsilie v oblasti spolupráce a ponúka oveľa väčšiu flexibilitu, aj keď na úkor určitej zložitosti.

zdieľam zdieľam Tweet E -mail Čo je text ASCII a ako sa používa?

Text ASCII vyzerá tajomne, ale na internete má mnoho použití.

Čítajte ďalej
Súvisiace témy
  • Technológia vysvetlená
  • Emodži
  • Žargón
  • Webová kultúra
  • Unicode
O autorovi Bobby Jack(58 publikovaných článkov)

Bobby je technologický nadšenec, ktorý pracoval ako vývojár softvéru väčšinu dvoch desaťročí. Má nadšenie pre hry, pracuje ako editor recenzií v časopise Switch Player a je ponorený do všetkých aspektov online publikovania a webového vývoja.

Viac od Bobbyho Jacka

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber