ASCII i Unicode su standardi koji se odnose na digitalno predstavljanje teksta, posebno na znakove koji čine tekst. Međutim, ta se dva standarda znatno razlikuju, a mnoga svojstva odražavaju njihov redoslijed stvaranja.
Amerika naspram svemira
Američki standardni kod za razmjenu informacija (ASCII), što nije iznenađujuće, udovoljava američkoj publici pišući engleskom abecedom. Bavi se nenaglašenim slovima, poput A-Z i a-z, te malim brojem interpunkcijskih simbola i kontrolnih znakova.
Konkretno, ne postoji način predstavljanja zajmova usvojenih iz drugih jezika, kao što su kafić u ASCII-u, bez davanja anglicizma zamjenom naglašenih znakova (npr. kafić). Lokalizirana proširenja ASCII razvijena su kako bi udovoljila potrebama različitih jezika, ali ti su napori učinili interoperabilnost neugodnom i očito su proširili mogućnosti ASCII-a.
Suprotno tome, Univerzalni kodirani skup znakova (Unicode) leži na suprotnom kraju ljestvice ambicija. Unicode pokušava udovoljiti što većem broju svjetskih pisanih sustava, do te mjere da pokriva drevne jezike i svima omiljeni skup izražajnih simbola, emojija.
Skup znakova ili kodiranje znakova?
Jednostavno rečeno, skup znakova je odabir znakova (npr. A-Z) dok je znak kodiranje je mapiranje između skupa znakova i vrijednosti koja se može digitalno predstaviti (npr. A = 1, B = 2).
ASCII standard učinkovito je i jedno i drugo: definira skup znakova koje predstavlja i metodu mapiranja svakog znaka u numeričku vrijednost.
Suprotno tome, riječ Unicode koristi se u nekoliko različitih konteksta da znači različite stvari. Možete ga smatrati sveobuhvatnim pojmom, poput ASCII, koji se odnosi na skup znakova i brojne kodiranja. No, budući da postoji nekoliko kodiranja, pojam Unicode često se koristi da se odnosi na ukupni skup znakova, a ne na način na koji su mapirani.
Veličina
Zbog svog opsega, Unicode predstavlja mnogo više znakova od ASCII. Standardni ASCII koristi 7-bitni raspon za kodiranje 128 različitih likova. Unicode je, s druge strane, toliko velik da trebamo koristiti drugu terminologiju samo da bismo o tome razgovarali!
Unicode pruža uslugu za adresiranje na 1,111,998 kodne točke. Točka koda je približno analogna prostoru rezerviranom za lik, ali situacija je puno kompliciranija od one kad počnete ulaziti u detalje!
Korisnija usporedba je koliko je skripti (ili sustava za pisanje) trenutno podržano. Naravno, ASCII obrađuje samo englesku abecedu, u osnovi latinično ili rimsko pismo. Verzija Unicodea proizvedena 2020. godine ide puno dalje: uključuje podršku za ukupno 154 skripte.
Skladištenje
ASCII-ovo 7-bitno područje znači da je svaki znak pohranjen u jedan 8-bitni bajt; rezervni bit nije iskorišten u standardnom ASCII. To izračune veličine čini trivijalnima: duljina teksta u znakovima je veličina datoteke u bajtovima.
To možete potvrditi sljedećim redoslijedom bash naredbi. Prvo stvorimo datoteku koja sadrži 12 slova teksta:
$ echo -n 'Hello, world'> foo
Da bismo provjerili nalazi li se tekst u ASCII kodiranju, možemo koristiti datoteka naredba:
$ datoteka foo
foo: ASCII tekst, bez završnih linija
Napokon, da bismo dobili točan broj bajtova koje datoteka zauzima, koristimo stat naredba:
$ stat -f% z foo
12
Budući da se Unicode standard bavi daleko većim rasponom znakova, Unicode datoteka prirodno zauzima više prostora za pohranu. Koliko točno ovisi o kodiranju.
Ponavljanje istog niza naredbi od prije, koristeći znak koji se ne može predstaviti u ASCII, daje sljedeće:
$ echo -n '€'> foo
$ datoteka foo
foo: UTF-8 Unicode tekst, bez završnih linija
$ stat -f% z foo
3
Taj jedan znak zauzima 3 bajta u Unicode datoteci. Imajte na umu da je bash automatski stvorio UTF-8 datoteku jer ASCII datoteka ne može pohraniti odabrani znak (€). UTF-8 je daleko najčešće kodiranje znakova za Unicode; UTF-16 i UTF-32 dva su alternativna kodiranja, ali se koriste puno manje.
UTF-8 je kodiranje promjenjive širine, što znači da koristi različite količine pohrane za različite kodne točke. Svaka će kodna točka zauzimati između jednog i četiri bajta, s namjerom da češći znakovi zahtijevaju manje prostora, pružajući vrstu ugrađene kompresije. Nedostatak je što određivanje zahtjeva za duljinom ili veličinom određenog dijela teksta postaje mnogo složenije.
ASCII je Unicode, ali Unicode nije ASCII
Radi povratne kompatibilnosti, prvih 128 Unicode kodnih točaka predstavljaju ekvivalentne ASCII znakove. Budući da UTF-8 kodira svaki od ovih znakova jednim bajtom, bilo koji ASCII tekst je ujedno i UTF-8 tekst. Unicode je superset ASCII-a.
Međutim, kao što je gore prikazano, mnoge Unicode datoteke ne mogu se koristiti u ASCII kontekstu. Bilo koji znak koji je izvan granica prikazat će se na neočekivan način, često sa zamijenjenim znakovima koji se potpuno razlikuju od onih koji su namijenjeni.
Moderna upotreba
U većinu svrha ASCII se uglavnom smatra naslijeđenim standardom. Čak i u situacijama koje podržavaju samo latinično pismo - gdje je puna podrška za složenost Unicodea nepotrebno, na primjer - obično je prikladnije koristiti UTF-8 i iskoristiti njegov ASCII kompatibilnost.
Konkretno, web stranice treba spremati i prenositi pomoću UTF-8, koji je zadani za HTML5. To je za razliku od ranijeg weba koji se prema zadanim postavkama bavio ASCII-om prije nego što ga je zamijenio Latin 1.
Standard koji se mijenja
Posljednja revizija ASCII dogodila se 1986. godine.
Suprotno tome, Unicode se i dalje ažurira svake godine. Redovito se dodaju nove skripte, likovi i, posebno, novi emojiji. Uz samo mali dio dodijeljenih, puni skup znakova vjerojatno će rasti i rasti u doglednoj budućnosti.
Povezano: 100 najpopularnijih objašnjenih emodžija
Ima toliko emojija, da može biti teško znati što sve znače. Evo najpopularnijih objašnjenih emojija.
ASCII nasuprot Unicodeu
ASCII je svoju svrhu služio mnogo desetljeća, ali Unicode ga je sada učinkovito zamijenio za sve praktične svrhe, osim za naslijeđene sustave. Unicode je veći i, prema tome, izražajniji. Predstavlja svjetski suradnički napor i nudi daleko veću fleksibilnost, iako na štetu neke složenosti.
ASCII tekst djeluje tajnovito, ali na Internetu se koristi mnogo.
- Objašnjena tehnologija
- Emoji
- Žargon
- Web kultura
- Unicode
Bobby je tehnološki entuzijast koji je većinu dva desetljeća radio kao programer softvera. Zaljubljen je u igre na sreću, radeći kao urednik recenzija u časopisu Switch Player, i uronjen je u sve aspekte internetskog izdavanja i web razvoja.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Još jedan korak…!
Molimo potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.