Unicode kodiranje 2. Preduslovi za stvaranje i razvoj unicode-a

Pozdrav dragi čitaoci blog stranice. Danas ćemo razgovarati s vama o tome odakle dolaze krakozyabri na web-mjestu iu programima, koja kodiranja teksta postoje i koja se trebaju koristiti. Pogledajmo pobliže povijest njihovog razvoja, počevši od osnovnog ASCII-a, kao i njegovih proširenih verzija CP866, KOI8-R, Windows 1251 pa do modernih kodiranja Unicode konzorcija UTF 16 i 8.

Nekome se ova informacija može činiti suvišnom, ali znate koliko pitanja dobijam u vezi s ispuzanim krakozjabrima (nečitljivim skupom znakova). Sada ću imati priliku uputiti sve na tekst ovog članka i samostalno pronaći svoje dovratnike. Pa, pripremite se da upijete informacije i pokušajte pratiti priču.

ASCII - osnovno kodiranje teksta za latinicu

Razvoj kodiranja teksta odvijao se istovremeno sa formiranjem IT industrije, a za to vrijeme uspjeli su pretrpjeti dosta promjena. Istorijski gledano, sve je počelo sa EBCDIC-om, koji u ruskom izgovoru nije bio eufoničan, koji je omogućio kodiranje slova latinice, arapskih brojeva i interpunkcijskih znakova kontrolnim znakovima.

Ali ipak, početna tačka za razvoj modernog kodiranja teksta je poznato ASCII(Američki standardni kod za razmjenu informacija, koji se na ruskom obično izgovara kao "aski"). Opisuje prvih 128 znakova koje najčešće koriste korisnici engleskog govornog područja - latinična slova, arapski brojevi i znakovi interpunkcije.

Čak je i ovih 128 znakova opisanih u ASCII-u uključivalo neke uslužne simbole kao što su zagrade, heš linije, zvjezdice itd. Zapravo, i sami ih možete vidjeti:

Upravo je ovih 128 znakova iz originalne ASCII verzije postalo standard, a u bilo kojem drugom kodiranju ćete ih sigurno susresti i oni će stajati tim redoslijedom.

Ali činjenica je da je uz pomoć jednog bajta informacija moguće kodirati ne 128, već čak 256 različitih vrijednosti (dva na stepen osam jednako je 256), dakle, nakon osnovna verzija Asuka se pojavila u čitavoj seriji proširena ASCII kodiranja, u kojem je, pored 128 osnovnih znakova, bilo moguće kodirati simbole nacionalnog kodiranja (na primjer, ruski).

Ovdje, možda, vrijedi reći nešto više o sistemima brojeva koji se koriste u opisu. Prvo, kao što svi znate, kompjuter radi samo sa brojevima u binarnom sistemu, odnosno sa nulama i jedinicama ("Boolean algebra", ako je neko išao na fakultet ili školu). , od kojih je svaki 2 u potenciji, počevši od nule, pa do dva u sedmom:

Nije teško shvatiti da u takvoj konstrukciji može postojati samo 256 mogućih kombinacija nula i jedinica, a broj iz binarnog sistema u decimalni je vrlo jednostavno pretvoriti. Samo treba da saberete sve stepene dva iznad kojih ima jedan.

U našem primjeru, ovo je 1 (2 na nulti stepen) plus 8 (dva na stepen 3), plus 32 (dva na peti stepen), plus 64 (na šesti), plus 128 (na sedmi). Ukupno dobija 233 inča decimalni sistem obračun. Kao što vidite, sve je vrlo jednostavno.

Ali ako pažljivo pogledate tabelu sa ASCII znakovima, vidjet ćete da su predstavljeni u heksadecimalnom kodiranju. Na primjer, zvjezdica odgovara heksadecimalnom broju 2A u Asuki. Vjerovatno to znate u heksadecimalni sistem Pored arapskih brojeva, u brojevima se koriste i latinična slova od A (znači deset) do F (znači petnaest).

Pa, za prevod binarni broj na heksadecimalni pribjegavajte sljedećoj jednostavnoj i intuitivnoj metodi. Svaki bajt informacija je podijeljen na dva dijela od četiri bita, kao što je prikazano na gornjoj slici. To. u svakom polubajtu, samo šesnaest vrijednosti (dvije na četvrti stepen) može biti kodirano u binarnom obliku, što se lako može predstaviti kao heksadecimalni broj.

Štaviše, u lijevoj polovini bajta bit će potrebno ponovo brojati stepene počevši od nule, a ne kao što je prikazano na snimku ekrana. Kao rezultat, nekim jednostavnim proračunima dobijamo da je broj E9 kodiran na snimku ekrana. Nadam se da su vam tok mog razmišljanja i rješenje ove zagonetke bili jasni. Pa, hajde sada da nastavimo, zapravo, o kodiranju teksta.

Proširene verzije Asuke - CP866 i KOI8-R kodiranja sa pseudografijom

Dakle, počeli smo da pričamo o ASCII-u, koji je bio, takoreći, polazna tačka za razvoj svih modernih kodiranja (Windows 1251, Unicode, UTF 8).

U početku je sadržavao samo 128 znakova latinične abecede, arapske brojeve i još nešto, ali u proširenoj verziji postalo je moguće koristiti svih 256 vrijednosti koje se mogu kodirati u jednom bajtu informacije. One. postalo je moguće dodati simbole slova vašeg jezika u Aski.

Ovdje će biti potrebno još jednom skrenuti pažnju da razjasnimo - zašto su nam uopšte potrebna kodiranja tekstove i zašto je to toliko važno. Simboli na ekranu vašeg računara se formiraju na osnovu dvije stvari - skupova vektorskih oblika (reprezentacija) svih vrsta znakova (oni su u ko datotekama) i koda koji vam omogućava da izvučete ovaj skup vektorskih oblika (font fajl) upravo onaj simbol koji će biti potrebno umetnuti na pravo mjesto.

Jasno je da su sami fontovi odgovorni za vektorske forme, ali su operativni sistem i programi koji se u njemu koriste odgovorni za kodiranje. One. bilo koji tekst na vašem računaru će biti skup bajtova, od kojih svaki kodira samo jedan karakter ovog teksta.

Program koji ovaj tekst prikazuje na ekranu (uređivač teksta, pretraživač itd.), prilikom raščlanjivanja koda, čita kodiranje sljedećeg znaka i traži odgovarajući vektorski oblik u željeni fajl font koji je povezan za prikaz ovog tekstualnog dokumenta. Sve je jednostavno i otrcano.

To znači da da bismo kodirali bilo koji znak koji nam je potreban (na primjer, iz nacionalnog alfabeta), moraju biti ispunjena dva uslova - vektorski oblik ovog znaka mora biti u fontu koji se koristi i ovaj znak može biti kodiran u proširenim ASCII kodovima u jedan bajt. Stoga postoji čitava gomila takvih opcija. Postoji nekoliko varijanti proširene Asuke samo za kodiranje znakova ruskog jezika.

Na primjer, izvorno se pojavio CP866, u kojem je bilo moguće koristiti znakove ruskog alfabeta i to je bila proširena verzija ASCII-a.

One. njen gornji dio se potpuno poklapao sa osnovnom verzijom Asuke (128 latiničnih znakova, brojeva i bilo kakvog drugog sranja), što je prikazano na snimku ekrana odmah iznad, ali donji dio tabele sa CP866 kodiranjem imao je prikaz prikazan na snimku ekrana upravo ispod i dozvoljeno je kodiranje još 128 znakova (ruska slova i sve vrste pseudo-grafike):

Vidite, u desnoj koloni brojevi počinju sa 8, jer brojevi od 0 do 7 odnose se na osnovni ASCII dio (pogledajte prvi snimak ekrana). To. rusko slovo "M" u CP866 imaće kod 9C (nalazi se na preseku odgovarajuće linije sa 9 i kolone sa brojem C u heksadecimalnom zapisu), koji se može napisati u jednom bajtu informacije, i ako postoji odgovarajući font sa ruskim znakovima, ovo slovo će bez problema biti prikazano u tekstu.

Odakle taj iznos? pseudografija u CP866? Poenta je da je ovo kodiranje za ruski tekst razvijeno još u tim krznenim godinama, kada nije bilo širenja grafičkih operativnih sistema kao sada. I u Dosu, i sličnim tekstualnim operativnim sistemima, pseudografika je omogućila da se na neki način diverzificira dizajn tekstova i stoga CP866 i svi ostali njegovi vršnjaci iz kategorije proširenih verzija Asuke obiluju njome.

CP866 je distribuirao IBM, ali osim toga, razvijeno je nekoliko kodiranja za ruske znakove, na primjer, ovaj tip (prošireni ASCII) se može pripisati KOI8-R:

Princip njegovog rada ostaje isti kao i kod CP866 opisanog malo ranije - svaki znak teksta je kodiran s jednim bajtom. Snimak ekrana prikazuje drugu polovinu tabele KOI8-R, od prva polovina je u potpunosti u skladu sa osnovnom Asukom, koja je prikazana na prvom snimku ekrana u ovom članku.

Među karakteristikama KOI8-R kodiranja, može se primijetiti da ruska slova u njegovoj tablici nisu po abecednom redu, kao što je, na primjer, bila u CP866.

Ako pogledate prvi snimak ekrana (osnovnog dijela, koji je uključen u sva proširena kodiranja), primijetit ćete da se u KOI8-R ruska slova nalaze u istim ćelijama tabele kao i slova suglasnika latinice sa njima iz prvog dela tabele. Ovo je učinjeno radi pogodnosti prebacivanja sa ruskih znakova na latinične znakove odbacivanjem samo jednog bita (dva na sedmu potenciju ili 128).

Windows 1251 - moderna verzija ASCII i zašto krakozyabry izlaze

Dalji razvoj kodiranja teksta bio je povezan s činjenicom da su grafički operativni sistemi postajali sve popularniji i da je vremenom nestala potreba za korištenjem pseudografike u njima. Kao rezultat toga, nastala je cijela grupa, koje su, u suštini, još uvijek bile proširene verzije Asuke (jedan znak teksta je kodiran sa samo jednim bajtom informacija), ali već bez upotrebe pseudo-grafičkih znakova.

Pripadali su takozvanim ANSI kodovima, koje je razvio Američki institut za standarde. U običnom govoru, naziv ćirilice i dalje se koristio za verziju s podrškom za ruski jezik. Primjer za to može poslužiti.

Povoljno se razlikovao od ranije korištenih CP866 i KOI8-R po tome što su mjesto pseudografskih simbola u njemu zauzeli nedostajući simboli ruske tipografije (osim znaka akcenta), kao i simboli koji se koriste u slavenskim jezicima blisko ruskom (ukrajinskom, bjeloruskom, itd.) ):

Zbog takvog obilja kodiranja ruskog jezika, proizvođači i proizvođači fontova softvera Stalno sam imala glavobolju, a vi i ja, dragi čitaoci, često smo izvlačili one ozloglašene krakozyabry kada je došlo do zabune sa verzijom korištenom u tekstu.

Vrlo često su izlazili prilikom slanja i primanja poruka putem e-mail, što je dovelo do stvaranja vrlo složenih tablica konverzije, koje, zapravo, nisu mogle fundamentalno riješiti ovaj problem, a često su korisnici dopisivanja koristili kako bi izbjegli ozloglašene krakozyabre kada su koristili ruska kodiranja poput CP866, KOI8-R ili Windows 1251.

U stvari, krakozyabry, koji je ispuzao umjesto ruskog teksta, bio je rezultat zloupotreba kodiranja ovog jezika koji nije odgovarao onom u kojem je bio kodiran tekstualna poruka u početku.

Recimo da li znakovi kodirani sa CP866 pokušaju da se prikažu pomoću tablica kodova Windows 1251, tada će se pojaviti ti isti krakozyabry (besmisleni skup znakova) koji će u potpunosti zamijeniti tekst poruke.

Slična situacija se vrlo često dešava kada se na forumima ili blogovima greškom sačuva tekst sa ruskim znakovima u pogrešnom kodiranju, koje se na sajtu podrazumevano koristi, ili u pogrešnom. uređivač teksta, koji kodu dodaje geg koji nije vidljiv golim okom.

Na kraju, takva situacija s mnoštvom kodiranja i stalno nastajajućim krakozjabrima umornim od mnogih, postojali su preduslovi za stvaranje nove univerzalne varijacije koja bi zamijenila sve postojeće i koja bi konačno riješila korijenski problem pojave nečitljivih tekstova. . Osim toga, postojao je problem jezika poput kineskog, gdje je znakova jezika bilo mnogo više od 256.

Unicode - univerzalna UTF kodiranja 8, 16 i 32

Ove hiljade znakova iz grupe jezika jugoistočne Azije ne mogu se opisati u jednom bajtu informacija, koji je bio dodijeljen za kodiranje znakova u proširenim verzijama ASCII-a. Kao rezultat, stvoren je konzorcij tzv Unicode(Unicode - Unicode Consortium) uz saradnju mnogih lidera IT industrije (onih koji proizvode softver, koji kodiraju hardver, koji kreiraju fontove) koji su bili zainteresovani za pojavu univerzalnog kodiranja teksta.

Prva varijacija objavljena pod okriljem Unicode konzorcija je bila UTF 32... Broj u nazivu kodiranja označava broj bitova koji se koriste za kodiranje jednog znaka. 32 bita su 4 bajta informacija koje će biti potrebne za kodiranje jednog pojedinačnog znaka u novom univerzalnom UTF kodiranju.

Kao rezultat toga, isti fajl sa tekstom kodiranim u proširenoj verziji ASCII-a iu UTF-32, u drugom slučaju, imaće četiri puta veću veličinu (težinu). Ovo je loše, ali sada imamo priliku da kodiramo broj znakova jednak dva na stepen od trideset druge ( milijarde znakova, koji će pokriti svaku zaista potrebnu vrijednost sa kolosalnom marginom).

Ali mnoge zemlje s jezicima europske grupe nisu morale koristiti tako ogroman broj znakova u kodiranju, ali kada se koristio UTF-32, dobile su četiri puta povećanje težine tekstualnih dokumenata uzalud, a kao rezultat, povećanje obima internet saobraćaja i količine pohranjenih podataka. Ovo je mnogo, i niko si nije mogao priuštiti takav otpad.

Kao rezultat razvoja Unicode-a, UTF-16, koji se pokazao toliko uspješnim da je standardno prihvaćen kao osnovni prostor za sve simbole koje koristimo. Koristi dva bajta za kodiranje jednog znaka. Da vidimo kako izgleda ovaj slučaj.

V operativni sistem Windows, možete pratiti putanju "Start" - "Programi" - "Dodatna oprema" - "Sistemski alati" - "Mapa simbola". Kao rezultat, otvorit će se tabela sa vektorskim oblicima svih fontova instaliranih u vašem sistemu. Ako odaberete da " Dodatni parametri»Skup Unicode znakova, moći ćete vidjeti za svaki font posebno cijeli niz znakova koji su uključeni u njega.

Usput, klikom na bilo koji od njih, možete vidjeti njegov dvobajt UTF-16 kod koji se sastoji od četiri heksadecimalne cifre:

Koliko znakova se može kodirati u UTF-16 sa 16 bita? 65536 (dva na stepen šesnaest), a upravo je taj broj uzet kao osnovni prostor u Unicode-u. Osim toga, postoje načini za kodiranje sa njim i oko dva miliona karaktera, ali su bili ograničeni na prošireni prostor od milion karaktera teksta.

Ali čak ni ova uspješna verzija Unicode kodiranja nije donijela veliko zadovoljstvo onima koji su, na primjer, pisali programe samo na engleskom, jer se nakon prelaska sa proširene verzije ASCII na UTF-16 težina dokumenata udvostručila (jedan bajt po jednom karakteru u Aski i dva bajta za isti znak u UTP-16).

Upravo na zadovoljstvo svih i svih u Unicode konzorcijumu odlučeno je da se osmisli kodiranje promenljive dužine... Nazvali su ga UTF-8. Uprkos broju osam u nazivu, on zaista ima promjenjivu dužinu, tj. svaki znak u tekstu se može kodirati u niz od jednog do šest bajtova.

U praksi se u UTF-8 koristi samo raspon od jednog do četiri bajta, jer osim četiri bajta koda ništa nije moguće čak ni teoretski zamisliti. Svi latinični znakovi u njemu su kodirani u jedan bajt, baš kao u dobrom starom ASCII-u.

Ono što je vrijedno pažnje, u slučaju kodiranja samo latiničnog pisma, čak i oni programi koji ne razumiju Unicode će i dalje čitati ono što je kodirano u UTF-8. One. osnovni dio Asuke upravo je prešao u ovu zamisao Unicode konzorcijuma.

Ćirilični znakovi u UTF-8 kodirani su u dva bajta, a, na primjer, gruzijski - u tri bajta. Unicode konzorcij nakon kreiranja UTF-a 16 i 8 riješio je glavni problem - sada imamo postoji jedan kodni prostor u fontovima... A sada ih njihovi proizvođači mogu ispuniti samo vektorskim oblicima tekstualnih simbola na osnovu svojih snaga i mogućnosti. Sada čak iu setovima.

U gornjoj "Tablici znakova" možete vidjeti da različiti fontovi podržavaju različit broj znakova. Neki fontovi bogati Unicode-om mogu biti veoma teški. Ali sada se ne razlikuju po tome što su kreirani za različita kodiranja, već po tome što je proizvođač fontova popunio ili nije popunio niti jedan kodni prostor određenim vektorskim oblicima do kraja.

Krakozyabry umjesto ruskih slova - kako popraviti

Pogledajmo sada kako se krakozjabre pojavljuju umjesto teksta, ili, drugim riječima, kako se bira ispravno kodiranje za ruski tekst. Zapravo, to je postavljeno u programu u kojem kreirate ili uređujete upravo ovaj tekst, odnosno kod koristeći fragmente teksta.

Za uređivanje i kreiranje tekstualne datoteke Ja lično koristim jedan jako dobar, po mom mišljenju. Međutim, može naglasiti sintaksu još dobrih stotinu programskih i markup jezika, a također ima mogućnost proširenja pomoću dodataka. Čitaj detaljan pregled ovaj divan program sa linka.

U gornjem meniju Notepad ++ nalazi se stavka "Kodiranja", gde ćete moći da konvertujete postojeću verziju u onu koja se podrazumevano koristi na vašem sajtu:

U slučaju stranice na Joomli 1.5 i novijoj, kao i u slučaju bloga na WordPress-u, kako biste izbjegli pojavu pukotina, odaberite opciju UTF 8 bez BOM-a... Šta je prefiks BOM?

Činjenica je da su, kada je razvijeno YUTF-16 kodiranje, iz nekog razloga odlučili da mu pridruže nešto kao što je mogućnost pisanja koda znakova, kako u direktnom nizu (na primjer, 0A15) tako iu obrnutom (150A) . A da bi programi razumjeli kojim redoslijedom čitati kodove, i izmišljen je BOM(Oznaka reda bajtova ili, drugim riječima, potpis), što je izraženo dodavanjem tri dodatna bajta na samom početku dokumenata.

U UTF-8 kodiranju, u Unicode konzorcijumu nije predviđena BOM, pa stoga dodavanje potpisa (ova najozloglašenija dodatna tri bajta na početak dokumenta) jednostavno sprečava neke programe da čitaju kod. Stoga, kada snimamo datoteke u UTP, uvijek moramo odabrati opciju bez BOM-a (bez potpisa). Dakle, napreduj zaštitite se od puzanja krakozyabrov.

Ono što je vrijedno pažnje je da neki programi u Windows-u to ne mogu (ne mogu sačuvati tekst u UTP-8 bez BOM-a), na primjer, ozloglašeni Windows Notepad. Dokument sprema u UTF-8, ali i dalje dodaje potpis (tri dodatna bajta) na početak. Štaviše, ovi bajtovi će uvijek biti isti - čitajte kod u direktnom nizu. Ali na serverima, zbog ove sitnice, može nastati problem - krakozyabry će izaći.

Dakle, nikako nemojte koristiti običan Windows notepad za uređivanje dokumenata vašeg sajta, ako ne želite izgled krakozjabrova. Najbolja i najjednostavnija opcija, mislim, je već spomenuti uređivač Notepad ++, koji praktički nema nedostataka i sastoji se samo od prednosti.

U Notepad ++, kada birate kodiranje, moći ćete da konvertujete tekst u UCS-2 kodiranje, koje je inherentno vrlo blisko Unicode standardu. Također u Notepad-u će biti moguće kodirati tekst u ANSI, tj. u odnosu na ruski jezik to ćemo već opisati odmah iznad Windowsa 1251. Odakle dolazi ova informacija?

Upisan je u registar Vaše operacione sale. Windows sistemi- koje kodiranje odabrati u slučaju ANSI, koje odabrati u slučaju OEM (za ruski jezik to će biti CP866). Ako instalirate drugi podrazumevani jezik na svom računaru, onda će ovi kodovi biti zamenjeni sličnim iz ANSI ili OEM kategorije za isti jezik.

Nakon što snimite dokument u kodiranju koji vam je potreban u Notepad ++ ili otvorite dokument sa stranice za uređivanje, možete vidjeti njegov naziv u donjem desnom kutu uređivača:

Da biste izbjegli krakozyabrov, pored gore opisanih radnji, bit će korisno napisati informacije o ovom kodiranju u zaglavlju izvornog koda svih stranica web-mjesta kako ne bi došlo do zabune na serveru ili lokalnom hostu.

Općenito, u svim jezicima za označavanje hiperteksta osim Html-a, koristi se posebna xml deklaracija, koja označava kodiranje teksta.

Prije nego počne raščlanjivati ​​kod, pretraživač će znati koja se verzija koristi i kako tačno treba tumačiti znakovne kodove ovog jezika. Ali ono što je vredno pažnje je da ako sačuvate dokument u podrazumevanom unicode-u, onda se ova xml deklaracija može izostaviti (kodiranje će se smatrati UTF-8 ako nema BOM ili YUTF-16 ako postoji BOM).

U slučaju dokumenta HTML jezik za označavanje da se koristi kodiranje Meta element, koji je napisan između otvaranja i zatvaranja Head tagova:

... ...

Ovaj unos se dosta razlikuje od onog usvojenog u, ali je u potpunosti u skladu sa novim Html 5 standardom koji se uvodi potajno, i biće 100% ispravno shvaćen od strane svih koji koriste na ovog trenutka pretraživači.

U teoriji, Meta element sa indikacijom kodiranja Html dokument bolje bi bilo staviti što je više moguće u zaglavlju dokumenta tako da bi u trenutku susreta sa prvim znakom u tekstu koji nije iz osnovnog ANSI (koji se uvek čita ispravno i u bilo kojoj varijaciji), pretraživač već treba da ima informaciju kako da tumači kodove ovih znakova.

Sretno ti! Vidimo se uskoro na stranicama blog stranice

Možda ste zainteresovani

Šta se desilo URL adrese koja je razlika između apsolutnih i relativnih linkova za stranicu
OpenServer - moderan lokalni server i primjer njegove upotrebe za WordPress instalacije na kompjuteru
Šta je Chmod, koje dozvole dodijeliti datotekama i mapama (777, 755, 666) i kako to učiniti putem PHP-a
Yandex pretraga na web lokaciji i online trgovini

Prilikom pokušaja konfiguriranja jedne ili druge funkcije Interneta, svaki korisnik je vjerojatno naišao na takav koncept kao što je "Unicode". Da biste saznali šta ovaj koncept znači, pročitajte Ovaj članak do kraja.

Unicode: definicija

Termin "Unicode" danas označava standard za kodiranje znakova. Ovaj standard je 1991. godine predložila neprofitna organizacija Unicode Inc. Unicode standard je dizajniran da kombinuje veliki broj različitih znakova u jednom dokumentu. Stranica kreirana na osnovu takvog kodiranja može sadržavati hijeroglife, slova i matematičke simbole. U ovom kodiranju svi znakovi se prikazuju bez problema.

"Unicode": razlozi za stvaranje

Mnogo prije pojave Unicode sistema, kodiranja su birana na osnovu preferencija autora dokumenta. Često je iz tog razloga, da bi se pročitao jedan dokument, bilo potrebno koristiti različite tabele. Međutim, to je trebalo učiniti nekoliko puta. Ovo je znatno otežalo život običnim korisnicima. Kao što je ranije spomenuto, 1991. godine neprofitna organizacija Unicode Inc. predložio korištenje nove vrste kodiranja informacija. Ovaj tip kodiranje je stvoreno da kombinuje širok spektar standarda. Unicode kodiranje je omogućilo postizanje nemogućeg: stvaranje alata koji podržava veliki broj znakova. Dobijeni rezultat je nadmašio očekivanja: dobili smo dokumente koji mogu istovremeno da sadrže i ruski i engleski tekst, kao i matematičke izraze i latinicu. Prije kreiranja unificirani sistem programeri kodiranja morali su riješiti niz problema koji su proizašli iz postojanja ogromnog broja standarda koji su već postojali na ovog trenutka... Najčešći od ovih problema bili su ograničeni skup znakova, vilenjačko pisanje, duplirani fontovi i problem pretvaranja različitih kodiranja.

"Unicode": izlet u istoriju

Zamislite sljedeću sliku: u dvorištu 80-ih, kompjuterska tehnologija još nije postala toliko raširena i ima drugačiji oblik od današnjeg. Svaki operativni sistem je jedinstven na svoj način i modificiraju ga entuzijasti za određene specifične potrebe. Kao rezultat toga, potreba za razmjenom informacija dovela je do dodatnih poboljšanja. Kada pokušavate da pročitate dokument kreiran u drugom operativnom sistemu, ekran obično prikazuje nerazumljive skupove znakova. To je zahtijevalo daljnji rad na kodiranju, koji se nije uvijek mogao obaviti brzo. Ponekad je za obradu traženog dokumenta bilo potrebno nekoliko mjeseci. Korisnici koji često moraju razmjenjivati ​​informacije počeli su za sebe kreirati posebne tabele konverzije. Rad sa ovakvim tabelama otkrio je jednu zanimljivu osobinu: potrebno je kreirati takve tabele istovremeno u dva pravca. Mašina ne može izvesti uobičajenu inverziju izračunavanja. Za njega se izvorni fajl upisuje u desnu kolonu, a rezultat je u lijevu. Naprotiv, ne mogu se preurediti. Ako je bilo potrebno koristiti neke posebne znakove u dokumentu, prvo ih je trebalo dodati, a zatim je bilo potrebno objasniti drugom korisniku šta treba učiniti s njima kako se ne bi pretvorili u "kryakozyabry". Također treba imati na umu da ste morali razviti vlastite fontove za svako kodiranje. To je dovelo do stvaranja ogromnog broja duplikata u operativnom sistemu. Tako je, na primjer, na jednoj stranici korisnik mogao vidjeti desetak fontova identičnih standardnom Times New Romanu, ali označenih sa UCS-2, UTF-16, UTF-8, ANSI. Stoga postoji potreba za razvojem univerzalnog standarda.

Unicode: kreatori

Početak historije stvaranja "Unicode-a" može se pripisati 1987. Tada je Joe Becker iz Xeroxa, zajedno s Markom Davisom i Lee Collinsom iz Applea, započeo istraživanje o praktičnom razvoju univerzalnog kodiranja. Godine 1988, Joe Becker je objavio projekat za stvaranje međunarodnog višejezičnog kodiranja. Nekoliko mjeseci kasnije proširena je radna grupa za razvoj Unicode-a. Uključivao je stručnjake kao što su Glenn Wright iz Sun Microsystems, Mike Kernegan i Ken Whistler iz RLG. To je omogućilo završetak rada na preliminarnom formiranju jedinstvenog standarda kodiranja.

Unicode: opći opis

Unicode kodiranje se zasniva na opšti koncept simbol. Ova definicija je shvaćena kao apstraktni fenomen koji postoji u obliku pisanja, implementiran kroz grafeme. U Unicodeu, svaki znak je pridružen jedinstvenom kodu koji pripada jednom ili drugom bloku standarda. Tako je, na primjer, grafem "B" prisutan i na engleskom i na ruskom, ali odgovara dva različita simbola. Ovi znakovi se također mogu pretvoriti u mala slova. To znači da je svaki od ovih simbola opisan ključem, skupom svojstava i imenom.

Unicode: Prednosti

Razlikuje se od drugih modernih sistema kodiranja "Unicode" po ogromnoj ponudi znakova za "šifriranje" različitih znakova. Stvar je u tome da su prethodna kodiranja imala samo 8 bita. To znači da su podržavali samo 28 znakova. Novi razvoj je imao 216 karaktera, što je bio veliki korak naprijed. Tako je postalo moguće kodirati gotovo sve postojeće abecede. Potreba za korištenjem tablica konverzije s pojavom "Unicodea" je nestala. Prisustvo jednog standarda jednostavno je svelo njihovu korisnost na nulu. Istovremeno, "kryakozyabry" je također nestao. Pojava novog standarda onemogućila je njihovo postojanje. Potreba za stvaranjem duplih fontova je također eliminirana.

Unicode: razvoj

Unatoč činjenici da napredak ne miruje, Unicode kodiranje i dalje drži vodeću poziciju u svijetu. To je postalo moguće uglavnom zahvaljujući činjenici da je postalo lako implementirati i postalo široko rasprostranjeno. Međutim, ne treba pretpostaviti da se danas koristi isti Unicode kodiranje kao prije 25 godina. Danas se koristi verzija 5.x.x. Broj kodiranih znakova se povećao na 231. Od svog početka do izdavanja verzije 2.0.0, Unicode kodiranje je skoro udvostručilo broj znakova uključenih u njega. U narednim godinama, ovaj rast mogućnosti se nastavio. Kada se pojavila verzija 4.0.0, postalo je neophodno povećati sam standard. Kao rezultat toga, Unicode kodiranje je dobilo oblik u kojem ga danas poznajemo.

Šta je još korisno u Unicodeu? Pored ogromnog, stalno rastućeg broja znakova, Unicode kodiranje ima jednu prilično korisnu osobinu. Ovo je normalizacija. Kodiranje ne troši računarske resurse na redovnu provjeru istog znaka, koji može imati sličan pravopis na različitim alfabetima. U tu svrhu koristi se poseban algoritam koji omogućava da se slični simboli prikazuju zasebno u grafu i referiraju na njih, a ne svaki put provjeravaju sve informacije. Ukupno su razvijena i implementirana četiri takva algoritma. Transformacija u svakom od njih vrši se prema određenom principu koji se razlikuje od ostalih.

Svaki korisnik Interneta, pokušavajući konfigurirati jednu ili drugu svoju funkciju, barem je jednom vidio napisanu riječ "Unicode" na ekranu. O čemu je riječ saznat ćete čitajući ovaj članak.

Definicija

Unicode kodiranje je standard za kodiranje znakova. Ponudila ga je neprofitna organizacija Unicode Inc. 1991. godine. Standard je dizajniran da kombinuje što više različitih tipova znakova u jednom dokumentu. Stranica koja je stvorena na njenoj osnovi može sadržavati slova i hijeroglife iz različitih jezika (od ruskog do korejskog) i matematičke znakove. U ovom slučaju, svi znakovi u ovom kodiranju se prikazuju bez problema.

Razlozi za stvaranje

Nekada davno, mnogo prije pojave jedinstvenog sistema "Unicode", kodiranje se biralo na osnovu preferencija autora dokumenta. Iz tog razloga, često ste, da biste pročitali jedan dokument, morali koristiti različiti stolovi... Ponekad je to trebalo učiniti nekoliko puta, što je značajno kompliciralo život običnog korisnika. Kao što je već spomenuto, rješenje za ovaj problem 1991. godine predložila je neprofitna organizacija Unicode Inc., koja je predložila novi tip kodiranja znakova. Namjera je bila kombinirati zastarjele i različite standarde. "Unicode" je kodiranje koje je omogućilo postizanje nezamislivog u to vrijeme: stvaranje alata koji podržava ogroman broj znakova. Rezultat je nadmašio mnoga očekivanja - pojavili su se dokumenti koji su istovremeno sadržavali i engleski i ruski tekst, latinski i matematičke izraze.

Ali stvaranju jedinstvenog kodiranja prethodila je potreba za rješavanjem niza problema koji su se pojavili zbog ogromne raznolikosti standarda koji su već postojali u to vrijeme. Najčešći su:

  • vilenjačka slova, ili "krakozyabry";
  • ograničen skup znakova;
  • problem pretvaranja kodiranja;
  • dupliranje fontova.

Mali istorijski izlet

Zamislite da su 80-te. Računarska tehnologija još nije toliko raširen i ima drugačiji oblik od današnjeg. U to vrijeme, svaki OS je jedinstven na svoj način i svaki entuzijasta ga modificira za specifične potrebe. Potreba za razmjenom informacija pretvara se u dodatno oplemenjivanje svega na svijetu. Pokušaj čitanja dokumenta kreiranog pod drugim OS-om često prikazuje nerazumljiv skup znakova na ekranu i počinju igre s kodiranjem. To nije uvijek moguće učiniti brzo, a ponekad se potreban dokument može otvoriti nakon šest mjeseci, pa čak i kasnije. Ljudi koji često razmjenjuju informacije kreiraju za sebe tabele konverzije. A sada rad na njima otkriva zanimljiv detalj: potrebno ih je kreirati u dva smjera: "od mog ka tvom" i obrnuto. Mašina ne može napraviti banalnu inverziju proračuna, jer je u desnoj koloni izvor, au lijevoj - rezultat, ali ne i obrnuto. Ako je bilo potrebe da se u dokumentu koriste neki posebni karakteri, oni su prvo morali biti dodati, a zatim i objasniti partneru šta treba da uradi kako se ti znakovi ne bi pretvorili u "krakozyabry". I ne zaboravimo da ste za svako kodiranje morali razviti ili implementirati vlastite fontove, što je dovelo do stvaranja ogromnog broja duplikata u OS-u.

Zamislite i da ćete na stranici fontova vidjeti 10 identičnih Times New Romana sa malim napomenama: za UTF-8, UTF-16, ANSI, UCS-2. Shvaćate li sada da je bilo imperativ razviti univerzalni standard?

"Očevi kreatori"

Porijeklo Unicodea može se pratiti do 1987. godine, kada je Joe Becker iz Xeroxa, zajedno s Lee Collinsom i Markom Davisom iz Applea, započeo istraživanje o praktičnom stvaranju univerzalnog skupa znakova. U avgustu 1988, Joe Becker je objavio nacrt prijedloga za 16-bitni međunarodni višejezični sistem kodiranja.

Nakon nekoliko mjeseci radna grupa Unicode je proširen tako da uključuje Kena Whistlera i Mikea Kernegana iz RLG-a, Glenna Wrighta iz Sun Microsystems-a i nekoliko drugih, čime je završen preliminarni rad na zajedničkom standardu kodiranja.

opći opis

Unicode je zasnovan na konceptu znaka. Ova definicija shvaća se kao apstraktni fenomen koji postoji u specifičnom obliku pisanja i ostvaruje se kroz grafeme (njihove „portrete“). Svaki znak je specificiran u "Unicode" jedinstvenim kodom koji pripada određenom bloku standarda. Na primjer, postoji grafem B i na engleskom i na ruskom pismu, ali u Unicode-u odgovara 2 različita znaka. Na njih se primjenjuje transformacija, odnosno svaki od njih je opisan ključem baze podataka, skupom svojstava i punim imenom.

Prednosti Unicode-a

Unicode kodiranje se razlikovalo od ostalih svojih savremenika po ogromnoj ponudi znakova za "šifriranje" znakova. Činjenica je da su njegovi prethodnici imali 8 bita, odnosno podržavali su 28 znakova, ali novi razvoj već je imao 216 karaktera, što je bio ogroman korak naprijed. To je omogućilo kodiranje gotovo svih postojećih i uobičajenih alfabeta.

Sa pojavom "Unicodea" nije bilo potrebe da se koriste tabele konverzije: kako uniformni standard jednostavno je negirao njihovu potrebu. Isto tako, "krakozyabry" su potonuli u zaborav - jedan standard ih je onemogućio, kao i eliminisao potrebu za stvaranjem duplih fontova.

Razvoj Unicode-a

Naravno, napredak ne miruje, a od prvog predstavljanja prošlo je 25 godina. Međutim, Unicode kodiranje tvrdoglavo održava svoju poziciju u svijetu. Na mnogo načina, to je postalo moguće zahvaljujući činjenici da je postalo lako implementirano i postalo široko rasprostranjeno, prepoznato kao programeri vlasničkog (plaćenog) i softvera otvorenog koda.

Istovremeno, ne treba pretpostaviti da nam je danas dostupan isti Unicode kodiranje kao prije četvrt stoljeća. Trenutno je njegova verzija promijenjena u 5.h.h, a broj kodiranih znakova je povećan na 231. Mogućnost korištenja veće količine znakova je napuštena kako bi se i dalje zadržala podrška za Unicode-16 (kodiranja gdje maksimalni broj znakova je ograničen na 216). Od svog početka i do verzije 2.0.0, "Unicode Standard" je skoro udvostručio broj znakova koji sadrži. Rast mogućnosti se nastavio i u narednim godinama. Do verzije 4.0.0 pojavila se potreba za povećanjem samog standarda, što je i učinjeno. Kao rezultat toga, "Unicode" je dobio oblik u kojem ga danas poznajemo.

Šta još postoji u Unicode-u?

Pored ogromnog, stalno rastućeg broja simbola, ima još jednu korisnu osobinu. To je takozvana normalizacija. Umjesto skrolovanja kroz cijeli dokument znak po znak i zamjene odgovarajućih ikona iz tabele za pretraživanje, koristi se jedan od postojećih algoritama normalizacije. o cemu pricamo?

Umjesto rasipanja računarskih resursa na redovnu provjeru istog simbola, koji može biti sličan u različitim alfabetima, koristi se poseban algoritam. Omogućava vam da izvučete slične znakove u zasebnu kolonu tabele zamjene i uputite se na njih, umjesto da iznova provjeravate sve podatke.

Četiri takva algoritma su razvijena i implementirana. U svakom od njih transformacija se odvija po strogo definisanom principu koji se razlikuje od ostalih, pa nije moguće nazvati najefikasnijim nijednu. Svaki je razvijen za specifične potrebe, implementiran i uspješno se koristi.

Distribucija standarda

Tokom 25 godina svoje istorije, Unicode kodiranje je verovatno najrasprostranjenije u svetu. Programi i web stranice su također prilagođeni ovom standardu. Činjenica da Unicode danas koristi više od 60% internetskih resursa može ukazivati ​​na širinu primjene.

Sada znate kada je Unicode standard nastao. Šta je to, vi takođe znate i moći ćete da cenite puni značaj izuma koji je napravila grupa stručnjaka iz Unicode Inc. prije više od 25 godina.

Ova stranica zahtijeva JavaScript da bi ispravno funkcionirala. Omogućite JavaScript u postavkama vašeg pretraživača.

Unicode tablica znakova

pokazi sve
Raspon: 0000-001F: Kontrolni znakovi C0 0020-007F: Osnovna latinica 0080-009F: Kontrolni znakovi C1 00A0-00FF: Prošireni latinični-1 znakovi 0100-017F: Prošireni latinični-A 0180-024F-02 Latinica 02 : Prošireni skup znakova međunarodne fonetske abecede 02B0-02FF: Prošireni znakovi-modifikatori koji se ne mogu kombinovati 0300-036F: Kombinovani dijakritici 0370-03FF: Grčko i kopsko pismo 0400-04FF: ćirilica 0500-050 Dodatni znak ćirilice: 0500-050 Jermenska abeceda 0590 -05FF: hebrejski 0600-06FF: arapski 0700-074F: sirijski 0750-077F: dodatni arapski znakovi 0780-07BF: Tana (maldivski) 07C0-07FF: Nko Mande-0800-0800:00-08-08F: 0800-0800-0800-08-080 08FF: arapski A-prošireni skup znakova 0900-097F: Devanagari 0980-09FF: bengalski 0A00-0A7F: Gurmukhi 0A80-0AFF: gudžarati 0B00-0B7F: Oriya 0B80-0BFF:0 Tel. 0C80-0CFF: kanada 0D00-0D7F: malajalam 0D80-0DFF: sinhalski 0E00-0E7F: tajlandski 0E80-0EFF: laoski 0F00-0FFF: tibetanski 1000-109F: hangulski 0-110 mjanmarski 0-110 gruzijski0 1010 -137F: etiopsko slogovno pismo 1380-139F: Dodatni znakovi etiopskog pisma 13A0-13FF: čeroki pismo 1400-167F: kanadsko slogovno pismo 1680-169F: Ogam 16A0-169F: Ogam 16A0-11yF: Rubay 16A0-11yF: Tabay 16A0-116F Hanunoo 1740-175F: Buhid 1760-177F: Tagbanwa 1780-17FF: Kmersko pismo 1800-18AF: Staro mongolsko pismo 18B0-18FF: Prošireno kanadsko slogovno pismo 1900-194F: Novo pismo 1900-194F19: Thimbu-19 Skripto19 Limbu-19 Skripta19 Limbu-19 pločice abecede 19E0-19FF: kmerski znakovi 1A00-1A1F: Bugi pismo (lontara) 1A20-1AAF: Stare pločice abecede (Tai Tham) 1B00-1B7F: balijsko pismo 1B80-1 BBF: Sundansko pismo 1BC0-1BFF: Batak pismo 1C00-1C4F: Lepcha (rong) skripta 1C50-1C7F: Ol Chiki skripta 1CD0-1CFF: Vedski znakovi 1D00-1D7F: Fonetski ekstenzije 1D80-1DBF1: Dodatna ekstenzija telefona 0 kombinovani dijakritički znakovi 1E00-1EFF: prošireni latinični prošireni 1F00-1FFF: prošireni grčki skup znakova 2000-206F: znakovi interpunkcije 2070-209F: superskripti i indeksi 20A0-20CF: Simboli valute 20F00-1FF simboli za valute 20Fbin-20 znak za znakove 20Fbin-10 Like znakovi 2150-218F: Brojčani obrasci 2190-21FF: Strelice 2200-22FF: Matematički operatori 2300-23FF: Razni tehnički znakovi 2400-243F: Ikone kontrolnog koda 2440-245F Ikone 2440-245F2440-245F Brojevi 2440-245F25 Slova-06 Oznaka 25 O6: Ne. : Simboli za okvire za crtanje 2580-259F: Simboli za popunjavanje 25A0-25FF: Geometrijski oblici 2600-26FF: Razni simboli 27 00-27BF: Dingbats 27C0-27EF: Razni matematički simboli-A 27F0-27FF: Razne strelice-A 2800-28FF: Brajevo pismo 2900-297F: Razne strelice-B 2980-297F: Razne strelice-B 2980-27FF: Miscellaneous Arrows-B 2980-27FF operatori 2B00-2BFF: Razni znakovi i strelice 2C00-2C5F: Glagoljica 1AB0-1AFF: Kombinovani dijakritički znakovi (ekstenzija A) 1CC0-1CCF: Prošireni skup znakova za sundanski A9E0-A9FF: Mianmarsko pismo AAE prošireni skup znakova 0FF: za pisanje Meitei AB30-AB8F: proširena latinica-E AB30-AB6F: Warang-kshiti AB90-ABBF: Beria pisanje za Zaghawa 2C60-2C7F: proširena latinica-C 2C80-2CFF: koptska abeceda 2D00-2D2F dodatni znakovi gruzijskog pisma 2D30-2D7F: Tifinagh 2D80-2DDF: etiopski znak proširen 2DE0-2DFF: proširena ćirilica-A 2E00-2E7F: Dodatni znakovi interpunkcija 2E80-2EFF: Dodatni KJK hijeroglifski ključevi 2F00-2FDF: Hijeroglifski ključevi rječnika Kangxi 2FF0-2FFF: znakovi koji opisuju hijeroglife 3000-303F: CJK simboli i interpunkcija 3000-303F: CJK simboli i interpunkcija 3030-3030-3030-3030-3000-3000-3000-3000-3000-3000-3000-3030 318F: Chamo u kombinaciji s hangulom 3190-319F: znakovi koji se koriste u Cambunu 31A0-31BF: Prošireni skup znakova bopomofo 31C0-31EF: CJK osobine 31F0-31FF: fonetska proširenja Katakane 3200-32FF: Companion CJ 3K 30 mjeseci: Nebility CJ-30 mjeseci. Oznake 3400-4DBF: CJK objedinjeni hijeroglifi (proširenje A) 4DC0-4DFF: I Ching heksagrami 4E00-9FFF: CJK ujedinjeni hijeroglifi A000-A48F: slogovi i A490-A4CF: Vanjski radikali-A4CF: Vapino-A6lab0: Vaffa-A6lab0 i A35D A640-A69F: ćirilica proširena-B A6A0-A6FF: Bamum pisanje A700-A71F: znakovi savijanja po nagibu A720-A7FF: latinica proširena D A800-A82F: Siloti Nagri A830-A83F: indijski numerički znakovi A840 pi A87F smo Pagba Lama A880-A8DF: Saurashtra A8E0-A8FF: Devanagari prošireni skup znakova A900-A92F: Kayah Lee A930-A95F: Rejang A960-A97F: hangul (proširenje A) A980-A9AA0: My0mar script: javanski skripta7AA05 (ekstenzija A) AA80-AADF: Tai Viet pismo AB00-AB2F: Skup znakova etiopskog pisma (ekstenzija A) ABC0-ABFF: Meitei / Manipuri AC00-D7AF: Hangul slogovi D800-DB7F: Gornji dio surogatnih parova -DBFFDB0: dio zamjenskih parova za privatnu upotrebu DC00-DFFF: Donji dio zamjenskih parova E000-F8FF: Područje za privatnu upotrebu F900-FAFF: Kompatibilni CJK znakovi FB00-FB4F: Abecedni prikazi FB50-FDCF: arapska slova-A reprezentacije FDF0-FDF Arapski oblici slova-A FE00-FE0F: Selektori slova FE10-FE1F: Vertikalni oblici FE20-FE2F: Kombinovanje polovina FE30-FE4F: CJK kompatibilni obrasci FE50-FE6F: Opcije male veličine FE70-FE FF: Arapski slovni oblici-B FF00-FFEF: Obrasci polovične i pune širine FFF0-FFFF: Posebni znakovi

  • Šta je Unicode?

    Unicode(eng. Unicode) je univerzalni standard za kodiranje znakova koji omogućava da se znakovi navedu za sve jezike u svijetu.

    Za razliku od ASCII, jedan znak je kodiran u dva bajta, što ga čini mogućim za korištenje 65 536 likovi protiv 256 .

    Kao što znate, jedan bajt je cijeli broj iz ogrebotina prije 255 ... Zauzvrat, bajt se sastoji od osam bitova, koji pohranjuju numeričke vrijednosti u binarnom obliku, gdje je svaka naredna jedinica trenutnog bita dvostruko veća od vrijednosti prethodnog bita. Dakle, dva bajta mogu pohraniti broj iz ogrebotina prije 65 535 , što nam omogućava da koristimo 65 536 znakova (nula + 65 535 , nula je također broj, nije ništa).

    Unicode znakovi su podijeljeni u sekcije. Prvi 128 znakovi ponavljaju tabelu ASCII.

    Porodica kodiranja je odgovorna za prikaz znakova. Unicode (Unicode transformacijski format - UTF). Najpoznatije i najčešće korišteno kodiranje je UTF-8.

  • Kako koristiti tabelu?

    Simboli su predstavljeni 16 komada po redu. Odozgo možete vidjeti heksadecimalni broj od 0 prije 16 ... Na lijevoj strani analogni brojevi u heksadecimalnom obliku 0 prije Fff.
    Povezivanjem broja na lijevoj strani sa brojem iznad, možete saznati kod karaktera. Na primjer: englesko pismo F nalazi se na liniji 004 , u koloni 6 : 004 + 6 = kod karaktera 0046 .

    Međutim, možete jednostavno preći preko specifičan karakter Pogledajte tabelu za šifru karaktera. Ili kliknite na simbol da ga kopirate, ili njegov kod u jednom od formata.

    U polje za pretragu možete uneti ključne reči za pretragu, na primer: strelice, sunce, srce. Alternativno, možete odrediti kod znakova u bilo kojem formatu, na primjer: 1123, 04BC, چ. Ili sam simbol, ako želite da znate šifru simbola.

    Traži po ključne riječi je trenutno u razvoju, tako da možda neće dati rezultate. Ali mnogi popularni simboli se već mogu pronaći.

Vjerovali ili ne, postoji format slike ugrađen u pretraživač. Ovaj format vam omogućava da učitate slike prije nego što zatrebaju, omogućava renderiranje slike na uobičajeni ili retina ekrani i omogućava vam da dodate CSS slikama. OK, to nije sasvim tačno. Ovo nije omjer stranica, iako sve ostalo ostaje isto. Koristeći ga, možete kreirati ikone neovisne o rezoluciji za koje nije potrebno vrijeme za učitavanje i koje su stilizirane koristeći CSS.

Šta je Unicode?

Unicode je mogućnost pravilnog prikaza slova i interpunkcijskih znakova iz različitih jezika na jednoj stranici. Neverovatno je korisno: korisnici će moći da komuniciraju sa vašom veb lokacijom širom sveta i ona će pokazati šta želite - može biti francuski sa akcentima ili kanji.

Unicode nastavlja da se razvija: sada je relevantna verzija 8.0, u kojoj ima više od 120 hiljada znakova (u originalnom članku, objavljenom početkom 2014., radilo se o verziji 6.3 i 110 hiljada znakova).

Osim slova i brojeva, u Unicode-u postoje i drugi simboli i ikone. V najnovije verzije ovo uključuje emojis koje možete vidjeti u iOS messengeru.

HTML stranice se kreiraju od niza Unicode znakova i konvertuju se u bajtove kada se šalju preko mreže. Svako slovo i svaki znak bilo kojeg jezika ima svoj jedinstveni kod i kodira se kada se datoteka pohrani.

Kada koristite sistem kodiranja UTF-8, možete direktno umetnuti Unicode znakove u tekst, ali ih možete dodati i tekstu navodeći digitalnu simboličku vezu. Na primjer, ovo je simbol srca i možete prikazati taj simbol jednostavnim dodavanjem koda u oznaku.

Ova numerička referenca može biti navedena u decimalnom ili heksadecimalnom formatu. Decimalni format zahtijeva dodavanje slova x na početku, notacija će dati isto srce () kao prethodna opcija. (2665 je heksadecimalna verzija 9829).

Ako dodajete Unicode znak koristeći CSS, tada možete koristiti samo heksadecimalne vrijednosti.

Neki od najčešće korišćenih Unicode znakova imaju više pamtljivih tekstualnih imena ili skraćenica umjesto numeričkih kodova, kao što je ampersand (& - &). Takvi simboli se nazivaju mnemonika u HTML-u, kompletna lista je dostupna na Wikipediji.

Zašto biste trebali koristiti Unicode?

Dobro pitanje, evo nekoliko razloga:

  1. Za korištenje ispravnih znakova iz različitih jezika.
  2. Za zamjenu ikona.
  3. Za zamjenu ikona povezanih putem @ font-face.
  4. Za definiranje CSS klasa

Važeći znakovi

Prvi od razloga ne zahtijeva nikakve dodatne radnje. Ako je HTML sačuvan u UTF-8 formatu i njegovo kodiranje se prenosi preko mreže kao UTF-8, sve bi trebalo da radi kako treba.

Mora. Nažalost, ne podržavaju svi pretraživači i uređaji sve Unicode znakove na isti način (tačnije, ne podržavaju svi fontovi cijeli skup znakova). Na primjer, nedavno dodani emoji znakovi nisu svugdje podržani.

Za podršku za UTF-8 u HTML5 dodaj (ako nemate pristup postavkama servera, trebali biste dodati ). Stari doctype koristi ( ).

Ikone

Drugi razlog za korištenje Unicodea je prisutnost veliki broj korisni simboli koji se mogu koristiti kao ikone. Na primjer, ≡ i.

Njihov očigledan plus je što vam ništa ne treba dodatni fajlovi da ih dodate na stranicu, što znači da će vaša stranica biti brža. Također možete promijeniti njihovu boju ili dodati sjenku koristeći CSS. A dodavanjem prijelaza (css prijelaz) možete glatko promijeniti boju ikone kada pređete preko nje bez ikakvih dodatnih slika.

Recimo da želim uključiti indikator ocjene u zvjezdicama na svojoj stranici. mogu to ovako:

★ ★ ★ ☆ ☆

Dobijate sljedeći rezultat:

Ali ako nemate sreće, vidjet ćete nešto poput ovoga:

Ista ocjena na BlackBerryju 9000

Ovo se dešava ako se upotrijebljeni znakovi ne nalaze u fontu pretraživača ili uređaja (srećom, ove zvjezdice su savršeno podržane i stare BlackBerry telefoni su jedini izuzetak ovde).

Ako nema Unicode znaka, na njegovom mjestu mogu biti različiti znakovi od praznog kvadrata (□) do romba sa upitnikom (�).

Kako pronaći Unicode znak koji bi mogao funkcionirati za vaš dizajn? Možete ga potražiti na web-stranici kao što je Unicodinator gledajući dostupne znakove, ali postoji također najbolji način... - ova sjajna stranica vam omogućava da nacrtate ikonu koju tražite, a zatim vam nudi listu sličnih Unicode znakova.

Korištenje Unicodea sa ikonama sa fontom @

Ako koristite ikone koje se povezuju s vanjskim fontom putem @ font-face, Unicode znakovi se mogu koristiti kao rezervni. Na ovaj način možete prikazati sličan Unicode znak na uređajima ili pretraživačima gdje @ font-face nije podržan:

Na lijevoj strani su ikone Font Awesome u Chromeu, a na desnoj su njihove Unicode zamjene u Opera Mini.

Mnogi @ font-face alati za podudaranje koriste niz Unicode znakova iz područja privatne upotrebe. Problem s ovim pristupom je u tome što ako @ font-face nije podržan, kodovi znakova se prosljeđuju korisniku bez ikakvog značenja.

Odlično za kreiranje skupova ikona u @ font-face i omogućava vam da odaberete odgovarajući Unicode karakter kao osnovu za ikonu.

Ali budite upozoreni - neki pretraživači i uređaji ne vole pojedinačne Unicode znakove kada se koriste sa @ font-face. Ima smisla testirati podršku za Unicode znakove uz Unify - ova aplikacija će vam pomoći da odredite koliko je bezbedno koristiti znak u skupu ikona @ font-face.

Podrška za Unicode znakove

Glavni problem sa korištenjem Unicode znakova kao rezervnog je loša podrška u čitačima ekrana (opet, neke informacije o tome možete pronaći na Unifyju), pa je važno pažljivo odabrati znakove koje koristite.

Ako je vaša ikona samo dekorativni element pored tekstualne oznake koju čita čitač ekrana, ne morate previše brinuti. Ali ako je ikona sama za sebe, vrijedi dodati skrivenu tekstualnu oznaku kako bi pomogli korisnicima čitača ekrana. Čak i ako čitač ekrana pročita Unicode znak, postoji šansa da će biti veoma različit od svoje namjene. Na primjer, ≡ (≡) kao ikona hamburgera će VoiceOver na iOS-u čitati kao "identičan".

Unicode u CSS imenima klasa

Činjenica da se Unicode može koristiti u nazivima klasa i stilovima poznata je od 2007. Tada je Jonathan Snook pisao o upotrebi Unicode znakova u pomoćnim klasama prilikom kucanja zaobljenih uglova. Ova ideja nije dobila veliku distribuciju, ali vrijedi znati o mogućnosti korištenja Unicodea u nazivima klasa (posebni znakovi ili ćirilica).

Odabir fonta

Nekoliko fontova podržava cijeli skup Unicode znakova, stoga provjerite znakove koje želite kada birate font.

Mnogo ikona u Segoe UI Symbol ili Arial Unicode MS. Ovi fontovi su dostupni i na PC-u i na Mac-u; Lucida Grande također ima priličnu količinu Unicode znakova. Možete dodati ove fontove deklaraciji porodice fontova kako biste osigurali da je maksimalan broj Unicode znakova dostupan korisnicima koji imaju instalirane ove fontove.

Određivanje podrške za Unicode

Bilo bi sjajno moći provjeriti prisustvo određenog Unicode znaka, ali ne postoji zajamčen način da se to učini.

Unicode znakovi mogu biti efikasni uz podršku. Na primjer, emotikon u naslovnoj liniji ga izdvaja od ostalih poštansko sanduče.

Zaključak

Ovaj članak pokriva samo osnove Unicode-a. Nadam se da će vam pomoći da bolje razumete Unicode i da ga efikasno koristite.

Lista linkova

  • (generator skupa ikona @ font-face baziran na Unicodeu)
  • Shape Catcher (unicode alat za prepoznavanje znakova)
  • Unicode (Unicode tablica znakova)
  • Unify (Provjerite podršku za Unicode znakove u pretraživačima)
  • Unitools (kolekcija alata za rad sa Unicodeom)