Što su kodiranje znakova Kao ANSI i Unicode i kako se razlikuju?
ASCII, UTF-8, ISO-8859 ... Možda ste vidjeli ove čudne nadimke kako plutaju okolo, ali što zapravo znače? Čitajte dalje jer objašnjavamo što je kodiranje znakova i kako se te kratice odnose na običan tekst koji vidimo na zaslonu.
Temeljni građevni blokovi
Kada govorimo o pisanom jeziku, govorimo o slovima koja su građevni blokovi riječi, koji zatim grade rečenice, odlomke i tako dalje. Slova su simboli koji predstavljaju zvukove. Kada govorite o jeziku, govorite o grupama zvukova koji se udružuju kako bi stvorili neku vrstu značenja. Svaki jezični sustav ima složen skup pravila i definicija koje upravljaju tim značenjem. Ako imate riječ, to je beskorisno ako ne znate iz kojeg je jezika i koristite ga s drugima koji govore taj jezik.
(Usporedba skripti Grantha, Tulu i Malayalam, slika s Wikipedije)
U svijetu računala koristimo pojam "karakter". Karakter je svojevrsni apstraktni koncept, definiran specifičnim parametrima, ali je temeljna jedinica značenja. Latinski 'A' nije isti kao grčki 'alfa' ili arapski 'alif' jer imaju različite kontekste - oni su iz različitih jezika i imaju nešto drugačije izgovore - tako da možemo reći da su to različiti likovi. Vizualni prikaz znaka naziva se "glif", a različiti skupovi znakova nazivaju se fontovima. Skupine znakova pripadaju "skupu" ili "repertoaru".
Kada upišete paragraf i promijenite font, ne mijenjate fonetske vrijednosti slova, mijenjate kako izgledaju. To je samo kozmetički (ali ne i nevažan!). Neki jezici, poput starog Egipćana i Kineza, imaju ideograme; one predstavljaju cijele ideje umjesto zvukova, a izgovori se mogu mijenjati tijekom vremena i udaljenosti. Ako zamijenite jedan znak drugom, zamjenjujete ideju. To je više nego samo mijenjanje slova, mijenja ideogram.
Kodiranje znakova
(Slika s Wikipedije)
Kada upisujete nešto na tipkovnicu ili učitavate datoteku, kako računalo zna što treba prikazati? Zbog toga je kodiranje znakova. Tekst na računalu nije zapravo slova, već niz uparenih alfanumeričkih vrijednosti. Kodiranje znakova djeluje kao ključ za koje vrijednosti odgovaraju kojim znakovima, slično kako ortografija diktira koji zvukovi odgovaraju kojim slovima. Morseov kod je neka vrsta kodiranja znakova. Objašnjava kako grupe dugih i kratkih jedinica kao što su zvučni signali predstavljaju znakove. U Morseovoj šifri, znakovi su samo engleska slova, brojevi i puni. Postoji mnogo kodiranja znakova računala koji se prevodi u slova, brojeve, oznake naglaska, interpunkcijske znakove, međunarodne simbole itd..
Često se na ovu temu koristi i pojam "kodne stranice". To su u biti kodiranje znakova koje koriste određene tvrtke, često s malim izmjenama. Na primjer, kodna stranica sustava Windows 1252 (ranije poznata kao ANSI 1252) je modificirani oblik ISO-8859-1. Uglavnom se koriste kao interni sustav za upućivanje na standardne i modificirane kodne znakove koji su specifični za iste sustave. Rano, kodiranje znakova nije bilo toliko važno jer računala nisu međusobno komunicirala. Budući da je internet sve više prisutan i da je umrežavanje uobičajena pojava, postalo je sve važnije naše svakodnevno življenje bez da smo ga uopće shvatili..
Mnoge različite vrste
(Slika sarah sosiak)
Tamo ima mnogo različitih kodiranja znakova, a za to postoji mnogo razloga. Koji kod za znakove koji odaberete ovisi o vašim potrebama. Ako komunicirate na ruskom, ima smisla koristiti kodiranje znakova koje dobro podržava ćirilicu. Ako komunicirate na korejskom, onda želite nešto što predstavlja hanul i hanja. Ako ste matematičar, onda želite nešto što ima sve znanstvene i matematičke simbole, kao i grčke i latinske znakove. Ako ste šaljivdžija, možda biste imali koristi od preokrenutog teksta. A ako želite da sve te vrste dokumenata budu pregledane od strane bilo koje osobe, želite kodiranje koje je prilično uobičajeno i lako dostupno.
Pogledajmo neke od najčešćih.
(Izvadak iz ASCII tablice, Slika s asciitable.com)
- ASCII - Američki standardni kod za razmjenu informacija je jedan od starijih kodnih znakova. Prvobitno je osmišljen na temelju telegrafskih kodova i vremenom se razvijao kako bi uključio više simbola i neke zastarjele neiskusne kontrolne znakove. To je vjerojatno kao osnovni kao što možete dobiti u smislu modernih sustava, kao što je ograničen na latinski abeceda bez naglašenih znakova. Njegovo 7-bitno kodiranje omogućuje samo 128 znakova, zbog čega u svijetu postoji nekoliko neslužbenih varijanti.
- ISO-8859 - Međunarodna organizacija za standardizaciju je najčešće korištena skupina kodiranja znakova broj 8859. Svako specifično kodiranje označeno je brojem, često prefiksom opisnog nadimka, npr. ISO-8859-3 (Latin-3), ISO-8859-6 (latinski / arapski). To je nadskup od ASCII, što znači da su prve 128 vrijednosti u kodiranju iste kao i ASCII. To je, međutim, 8-bitni i dopušta 256 znakova, tako da se izdvaja od njega i uključuje mnogo širi raspon znakova, pri čemu se svako specifično kodiranje fokusira na drugačiji skup kriterija. Latin-1 je uključivao hrpu slovnih znakova i simbola s naglaskom, ali je kasnije zamijenjen revidiranim skupom nazvanim Latin-9 koji sadrži ažurirane znakove kao što je simbol eura..
(Izvadak iz tibetanske skripte, Unicode v4, s unicode.org)
- unicode - Ovaj standard kodiranja ima za cilj univerzalnost. Trenutno sadrži 93 skripte organizirane u nekoliko blokova, s mnogo više u radu. Unicode djeluje drugačije od ostalih skupova znakova, tako da se umjesto izravnog kodiranja za glif, svaka vrijednost usmjerava dalje na "kodnu točku". To su heksadecimalne vrijednosti koje odgovaraju programu , kao što je vaš web preglednik. Ove kodne točke obično se prikazuju na sljedeći način: U + 0040 (što znači "@"). Specifična kodiranja pod Unicode standardom su UTF-8 i UTF-16. UTF-8 pokušava omogućiti maksimalnu kompatibilnost s ASCII-om. To je 8-bitni, ali dopušta sve znakove putem mehanizma zamjene i više parova vrijednosti po znaku. UTF-16 pruža savršenu ASCII kompatibilnost za potpuniju 16-bitnu kompatibilnost sa standardom.
- ISO-10646 - Ovo nije stvarno kodiranje, već skup znakova Unicodea koji je standardizirao ISO. To je uglavnom važno jer je to repertoar znakova koji koristi HTML. Nedostaju neke od naprednijih funkcija koje osigurava Unicode koje omogućuju uspoređivanje i desno na lijevo uz skriptiranje s lijeva na desno. Ipak, radi vrlo dobro za korištenje na internetu jer omogućuje korištenje raznih skripti i omogućuje pregledniku da interpretira glifove. To olakšava lokalizaciju.
Što kodiranje trebam koristiti?
Dakle, ASCII radi za većinu govornika engleskog jezika, ali ne za mnogo drugog. Češće ćete vidjeti ISO-8859-1, koji radi za većinu zapadnoeuropskih jezika. Ostale verzije ISO-8859 rade za ćirilicu, arapski, grčki ili druge specifične skripte. Međutim, ako želite prikazati više skripti u istom dokumentu ili na istoj web-stranici, UTF-8 omogućuje mnogo bolju kompatibilnost. Također dobro funkcionira za osobe koje koriste odgovarajuće interpunkcijske znakove, matematičke simbole ili znakove za ispis, poput kvadrata i potvrdnih okvira..
(Više jezika u jednom dokumentu, snimka zaslona programa gujaratsamachar.com)
Međutim, svaki set ima nedostatke. ASCII je ograničen u svojim interpunkcijskim znakovima, tako da ne radi nevjerojatno dobro za tipografski ispravna uređivanja. Jeste li ikada kopirali / zalijepili samo iz Worda da biste imali neku čudnu kombinaciju znakova? To je nedostatak ISO-8859, ili točnije, njegova navodna interoperabilnost s OS-specifičnim kodnim stranicama (gledamo vas, Microsoft!). Glavni nedostatak UTF-8 je nedostatak odgovarajuće podrške pri uređivanju i objavljivanju aplikacija. Drugi problem je što preglednici često ne interpretiraju i samo prikazuju oznaku bajtnog reda kodiranog UTF-8 znaka. To rezultira prikazivanjem neželjenih znakova. I naravno, deklariranje jednog kodiranja i upotreba znakova od drugih bez njihovog ispravnog navođenja na web-stranici otežava preglednicima da ih ispravno prikažu i da ih tražilice pravilno indeksiraju.
Za vlastite dokumente, rukopise i tako dalje, možete koristiti sve što vam je potrebno za obavljanje posla. Što se tiče weba, čini se da se većina ljudi slaže s korištenjem verzije UTF-8 koja ne koristi oznaku bajtova, ali to nije posve jednoglasno. Kao što možete vidjeti, svako kodiranje znakova ima svoju vlastitu uporabu, kontekst i prednosti i slabosti. Kao krajnji korisnik, vjerojatno se nećete morati nositi s tim, ali sada možete poduzeti dodatni korak naprijed ako tako odlučite.