Codificare Unicode 2. Condiții preliminare pentru crearea și dezvoltarea Unicode

Bună ziua, dragi cititori ai site-ului blogului. Astăzi vom vorbi cu tine despre de unde provin krakozyabr-urile pe site și în programe, ce codificări de text există și care ar trebui folosite. Să aruncăm o privire mai atentă asupra istoriei dezvoltării lor, pornind de la ASCII de bază, precum și versiunile sale extinse CP866, KOI8-R, Windows 1251 și terminând cu codificările moderne ale Unicode Consortium UTF 16 și 8.

Pentru unii, aceste informații pot părea redundante, dar ați ști câte întrebări primesc în special cu privire la krakozyabrs (un set de caractere imposibil de citit). Acum voi avea ocazia să trimit pe toată lumea la textul acestui articol și să-mi caut în mod independent stâlpii. Ei bine, pregătiți-vă să absorbiți informațiile și încercați să urmați cursul poveștii.

ASCII - codificarea de bază a textului pentru latină

Dezvoltarea codificărilor de text a avut loc concomitent cu formarea industriei IT, iar în acest timp au reușit să sufere destul de multe schimbări. Din punct de vedere istoric, totul a început cu EBCDIC, care era destul de disonantă în pronunția rusă, ceea ce a făcut posibilă codificarea literelor alfabetului latin, cifrelor arabe și semnelor de punctuație cu caractere de control.

Dar totuși, punctul de plecare pentru dezvoltarea codificărilor moderne de text ar trebui considerat celebrul ASCII(Codul standard american pentru schimbul de informații, care în rusă este de obicei pronunțat „aski”). Descrie primele 128 de caractere dintre cele mai frecvent utilizate de utilizatorii vorbitori de limba engleză - litere latine, cifre arabe și semne de punctuație.

Chiar și în aceste 128 de caractere descrise în ASCII, au existat câteva caractere de serviciu, cum ar fi paranteze, bare, asteriscuri etc. De fapt, le puteți vedea singur:

Aceste 128 de caractere din versiunea originală ASCII au devenit standardul, iar în orice altă codificare le veți întâlni cu siguranță și vor sta în această ordine.

Dar adevărul este că, cu ajutorul unui octet de informații, este posibil să se codifice nu 128, ci până la 256 de valori diferite (două la puterea lui opt este egal cu 256), prin urmare, urmând versiunea de bază Asuka a apărut un număr codificări ASCII extinse, în care, pe lângă 128 de caractere de bază, a fost posibilă și codificarea simbolurilor codificării naționale (de exemplu, rusă).

Aici, probabil, merită să spunem puțin mai multe despre sistemele de numere care sunt folosite în descriere. În primul rând, după cum știți cu toții, un computer funcționează doar cu numere în sistemul binar, și anume cu zerouri și unu („algebră booleană”, dacă cineva a studiat la un institut sau la școală). , fiecare dintre acestea fiind un doi în grad, începând de la zero și până la doi în al șaptelea:

Nu este greu de înțeles că pot exista doar 256 dintre toate combinațiile posibile de zerouri și unu într-o astfel de construcție. Pentru a traduce un număr din sistem binar la zecimală este destul de ușor. Trebuie doar să aduni toate puterile a doi, peste care există unele.

În exemplul nostru, acesta este 1 (2 la puterea lui zero) plus 8 (două la puterea lui 3), plus 32 (doi la a cincea), plus 64 (la a șasea), plus 128 (la a șaptea) . Totalul obține 233 in sistem zecimal socoteala. După cum puteți vedea, totul este foarte simplu.

Dar dacă aruncați o privire mai atentă la tabelul cu caractere ASCII, veți vedea că acestea sunt reprezentate în codificare hexazecimală. De exemplu, „asteriscul” corespunde în Asci cu numărul hexazecimal 2A. Probabil știi asta în sistem hexazecimal cifrele sunt folosite, pe lângă cifrele arabe, și litere latine de la A (însemnând zece) la F (însemnând cincisprezece).

Ei bine, pentru convertiți binar în hexazecimal recurge la următoarea metodă simplă și vizuală. Fiecare octet de informații este împărțit în două părți de patru biți, așa cum se arată în captura de ecran de mai sus. Acea. în fiecare jumătate de octet, doar șaisprezece valori pot fi codificate în cod binar (de la două până la a patra putere), care poate fi ușor reprezentat ca un număr hexazecimal.

Mai mult, în jumătatea stângă a octetului, va fi necesar să numărați din nou gradele, începând de la zero și nu așa cum se arată în captura de ecran. Drept urmare, prin calcule simple, obținem că numărul E9 este codificat în captură de ecran. Sper că cursul raționamentului meu și soluția acestui puzzle s-au dovedit a fi clare pentru tine. Ei bine, acum să continuăm, de fapt, să vorbim despre codificări de text.

Versiuni extinse de Asuka - codificări CP866 și KOI8-R cu pseudografice

Așadar, am început să vorbim despre ASCII, care a fost, parcă, punctul de plecare pentru dezvoltarea tuturor codificărilor moderne (Windows 1251, Unicode, UTF 8).

Inițial, conținea doar 128 de caractere din alfabetul latin, cifre arabe și altceva, dar în versiunea extinsă a devenit posibilă utilizarea tuturor celor 256 de valori care pot fi codificate într-un octet de informații. Acestea. a devenit posibil să adăugați caractere din literele limbii dumneavoastră la Asci.

Aici va fi necesar să divagam încă o dată pentru a explica - De ce ai nevoie de codificare? texte și de ce este atât de important. Caracterele de pe ecranul computerului sunt formate pe baza a două lucruri - seturi de forme vectoriale (reprezentări) de tot felul de caractere (sunt în fișiere co) și un cod care vă permite să scoateți din acest set de forme vectoriale ( font) exact caracterul pe care trebuie să-l inserați în Locul corect.

Este clar că fonturile sunt responsabile pentru formele vectoriale în sine, dar sistemul de operare și programele utilizate în el sunt responsabile pentru codificare. Acestea. orice text de pe computer va fi un set de octeți, fiecare dintre care codifică un singur caracter al acestui text.

Programul care afișează acest text pe ecran (editor de text, browser etc.), în timp ce analizează codul, citește codificarea următorului caracter și caută forma vectorială corespunzătoare în fișierul dorit fontul care este conectat pentru a afișa acest document text. Totul este simplu și banal.

Aceasta înseamnă că pentru a codifica orice caracter de care avem nevoie (de exemplu, din alfabetul național), trebuie îndeplinite două condiții - forma vectorială a acestui caracter trebuie să fie în fontul folosit, iar acest caracter ar putea fi codificat în codificări ASCII extinse. într-un octet. Prin urmare, există o mulțime de astfel de opțiuni. Numai pentru codificarea caracterelor limbii ruse, există mai multe varietăți de Aska extins.

De exemplu, inițial a existat CP866, în care se putea folosi caracterele alfabetului rus și era o versiune extinsă a ASCII.

Acestea. partea superioară a coincis complet cu versiunea de bază a lui Asuka (128 de caractere latine, numere și alte prostii), care este afișată în captura de ecran de mai sus, dar partea inferioară a tabelului cu codificare CP866 avea forma afișată în captura de ecran de mai jos. și a permis să codifice alte 128 de semne (litere rusești și tot felul de pseudografice acolo):

Vedeți, în coloana din dreapta, numerele încep cu 8, pentru că numerele de la 0 la 7 se referă la partea de bază ASCII (vezi prima captură de ecran). Acea. litera rusă „M” din CP866 va avea codul 9C (se află la intersecția rândului corespunzător cu 9 și a coloanei cu numărul C în sistemul numeric hexazecimal), care poate fi scris într-un octet de informații, iar dacă există un font potrivit cu caractere rusești, această literă fără probleme va fi afișată în text.

De unde aceasta suma? pseudografic în CP866? Chestia este că această codificare pentru textul rusesc a fost dezvoltată în acei ani blăniți, când nu exista o astfel de distribuție a sistemelor de operare grafice ca acum. Și în Dosa și în sistemele de operare cu text similare, pseudo-grafica a făcut posibilă diversificarea oarecum a designului textelor și, prin urmare, abundă în CP866 și toți ceilalți colegi din categoria versiunilor extinse ale Asuka.

CP866 a fost distribuit de IBM, dar în plus, au fost dezvoltate o serie de codificări pentru caractere rusești, de exemplu, același tip (ASCII extins) poate fi atribuit KOI8-R:

Principiul funcționării sale rămâne același cu cel al CP866 descris puțin mai devreme - fiecare caracter al textului este codificat de un singur octet. Captura de ecran arată a doua jumătate a tabelului KOI8-R, deoarece prima jumătate corespunde pe deplin cu Asuka de bază, care este afișată în prima captură de ecran din acest articol.

Printre caracteristicile codificării KOI8-R, se poate remarca faptul că literele rusești din tabelul său nu sunt în ordine alfabetică, așa cum, de exemplu, sa făcut în CP866.

Dacă vă uitați la prima captură de ecran (a părții de bază, care este inclusă în toate codificările extinse), veți observa că în KOI8-R literele rusești sunt situate în aceleași celule ale tabelului ca și literele consoanei alfabetului latin. cu ei din prima parte a tabelului. Acest lucru a fost făcut pentru comoditatea trecerii de la caracterele rusești la caractere latine, eliminând doar un bit (două la a șaptea putere sau 128).

Windows 1251 - versiunea modernă a ASCII și de ce krakozyabry se accesează cu crawlere

Dezvoltarea în continuare a codificărilor de text s-a datorat faptului că sistemele de operare grafică câștigau popularitate și nevoia de a folosi pseudografice în ele a dispărut în timp. Ca urmare, a apărut un întreg grup, care, în esență, erau încă versiuni extinse ale Asuka (un caracter text este codificat cu doar un octet de informații), dar fără utilizarea caracterelor pseudografice.

Ele aparțineau așa-numitelor codificări ANSI, care au fost dezvoltate de Institutul American de Standarde. În limbajul comun, numele chirilic a fost folosit și pentru varianta cu suport pentru limba rusă. Un exemplu în acest sens poate servi.

Se compară favorabil cu CP866 și KOI8-R utilizate anterior, deoarece locul simbolurilor pseudografice în el a fost luat de simbolurile lipsă ale tipografiei ruse (în afară de semnul de accent), precum și de simbolurile folosite în limbile slave apropiate de Rusă (ucraineană, belarusă etc.):

Datorită unei astfel de abundențe de codificări în limba rusă, producătorii și producătorii de fonturi software o durere de cap a apărut în mod constant, iar noi, dragi cititori, de multe ori am scăpat de aceleași notorii krakozyabry când a existat confuzie cu versiunea folosită în text.

Foarte des au ieșit atunci când trimiteau și primeau mesaje prin e-mail, ceea ce a condus la crearea unor tabele de conversie foarte complexe, care, de fapt, nu au putut rezolva în mod fundamental această problemă și adesea utilizatorii au folosit pentru corespondență pentru a evita notorii krakozyabrs atunci când foloseau codificări rusești precum CP866, KOI8-R sau Windows 1251.

De fapt, krakozyabry, cățărând afară în loc de textul rusesc, a fost rezultatul utilizare incorectă codificări limba dată, care nu se potrivea cu cel în care a fost codificat mesaj text inițial.

Să spunem dacă caracterele codificate cu CP866 încearcă să se afișeze folosind tabelul de coduri Windows 1251, atunci vor apărea aceleași krakozyabry (set de caractere fără sens), înlocuind complet textul mesajului.

O situație similară apare foarte des în cazul forumurilor sau blogurilor, când textul cu caractere rusești este salvat în mod eronat în codificarea greșită, care este folosită implicit pe site, sau în greșit editor de text, care adaugă gag codului care nu este vizibil cu ochiul liber.

În cele din urmă, mulți oameni s-au săturat de o astfel de situație cu o mulțime de codificări și în mod constant ieșind din krakozyabry, existau condiții prealabile pentru crearea unei noi variante universale care să le înlocuiască pe toate cele existente și să rezolve în cele din urmă problema cu apariția textelor ilizibile. . În plus, a existat problema limbilor precum chineza, unde caracterele limbii erau mult mai mult de 256.

Unicode (Unicode) - codificări universale UTF 8, 16 și 32

Aceste mii de caractere ale grupului de limbi din Asia de Sud-Est nu au putut fi descrise în niciun fel într-un octet de informații, care a fost alocat pentru codificarea caracterelor în versiunile extinse de ASCII. Drept urmare, un consorțiu a sunat Unicode(Unicode - Unicode Consortium) cu cooperarea multor lideri din industria IT (cei care produc software, care codifică hardware, care creează fonturi) care au fost interesați de apariția unei codări universale de text.

Prima variantă care a fost lansată sub auspiciile Consorțiului Unicode a fost UTF-32. Numărul din numele codificării înseamnă numărul de biți care este utilizat pentru a codifica un caracter. 32 de biți reprezintă 4 octeți de informații care vor fi necesari pentru a codifica un singur caracter în noua codificare universală UTF.

Ca urmare, același fișier cu text, codificat în versiunea extinsă ASCII și în UTF-32, în acest din urmă caz ​​va avea o dimensiune (greutate) de patru ori mai mare. Acest lucru este rău, dar acum avem posibilitatea de a codifica folosind UTF numărul de caractere egal cu două la puterea de treizeci de secunde ( miliarde de caractere, care va acoperi orice valoare cu adevărat necesară cu o marjă uriașă).

Dar multe țări cu limbi ale grupului european nu au avut deloc nevoie să folosească un număr atât de mare de caractere în codificare, cu toate acestea, atunci când foloseau UTF-32, au primit o creștere de patru ori în greutate pentru nimic. documente text, și ca urmare, o creștere a volumului de trafic pe Internet și a cantității de date stocate. Este mult și nimeni nu și-ar putea permite o astfel de risipă.

Ca urmare a dezvoltării Unicode, UTF-16, care s-a dovedit a fi atât de reușit încât a fost acceptat ca spațiu de bază implicit pentru toate caracterele pe care le folosim. Folosește doi octeți pentru a codifica un caracter. Să vedem cum arată chestia asta.

LA sistem de operare Windows, puteți merge pe calea "Start" - "Programe" - "Accesorii" - "Utilități" - "Tabel de caractere". Ca rezultat, se va deschide un tabel cu forme vectoriale ale tuturor fonturilor instalate în sistemul dumneavoastră. Daca alegi in " Opțiuni suplimentare» Set de caractere Unicode, puteți vedea pentru fiecare font separat întreaga gamă de caractere incluse în acesta.

Apropo, făcând clic pe oricare dintre ele, îi puteți vedea dublu octet cod în format UTF-16, format din patru cifre hexazecimale:

Câte caractere pot fi codificate în UTF-16 folosind 16 biți? 65536 (două la puterea șaisprezece) și acest număr a fost adoptat ca spațiu de bază în Unicode. În plus, există modalități de a codifica cu acesta aproximativ două milioane de caractere, dar limitate la un spațiu extins de un milion de caractere de text.

Dar nici această versiune de succes a codificării Unicode nu a adus prea multe satisfacții celor care au scris, să zicem, programe doar în Limba engleză, deoarece ei, după trecerea de la versiunea extinsă a ASCII la UTF-16, greutatea documentelor s-a dublat (un octet pe caracter în Asci și doi octeți pe același caracter în UTF-16).

Asta e pentru satisfacția tuturor și a tuturor în consorțiul Unicode, s-a decis să se vină cu codificare de lungime variabilă. Se numește UTF-8. În ciuda celor opt din nume, are într-adevăr o lungime variabilă, adică. fiecare caracter text poate fi codificat într-o secvență de la unu până la șase octeți.

În practică, în UTF-8, se folosește doar intervalul de la unu la patru octeți, deoarece în spatele a patru octeți de cod, nimic nu este chiar teoretic posibil de imaginat. Toate caracterele latine din el sunt codificate pe un octet, la fel ca în vechiul ASCII.

În mod remarcabil, în cazul codificării numai în limba latină, chiar și acele programe care nu înțeleg Unicode vor citi în continuare ceea ce este codificat în UTF-8. Acestea. partea de bază a lui Asuka a trecut pur și simplu în această creație a Consorțiului Unicode.

Caracterele chirilice în UTF-8 sunt codificate pe doi octeți și, de exemplu, caracterele georgiane pe trei octeți. Consorțiul Unicode, după ce a creat UTF 16 și 8, a rezolvat principala problemă - acum avem fonturile au un singur spațiu de cod. Și acum producătorii lor îl pot completa doar cu forme vectoriale de caractere text pe baza punctelor forte și a capacităților lor. Acum chiar și în seturi.

În „Tabelul de caractere” de mai sus, puteți vedea că diferite fonturi acceptă un număr diferit de caractere. Unele fonturi bogate în Unicode pot fi foarte mari. Dar acum ele diferă nu prin faptul că au fost create pentru diferite codificări, ci prin faptul că producătorul fontului a umplut sau nu a umplut spațiul unic de cod cu una sau alta formă vectorială până la sfârșit.

Krakozyabry în loc de litere rusești - cum se remediază

Să vedem acum cum apar krakozyabras în loc de text sau, cu alte cuvinte, cum este aleasă codificarea corectă pentru textul rusesc. De fapt, este setat în programul în care creați sau editați același text sau codați folosind fragmente de text.

Pentru editare și creare fișiere text Eu personal folosesc un foarte bun, după părerea mea, . Cu toate acestea, poate evidenția sintaxa a încă o sută de limbaje de programare și de marcare și are, de asemenea, capacitatea de a fi extins folosind plugin-uri. Citit prezentare detaliată acest program minunat la link-ul oferit.

În meniul de sus al Notepad ++ există un element „Codificări”, unde veți avea posibilitatea de a converti o opțiune existentă în cea folosită implicit pe site-ul dvs.:

În cazul unui site pe Joomla 1.5 și mai sus, precum și în cazul unui blog pe WordPress, pentru a evita apariția bug-urilor, alegeți opțiunea UTF8 fără BOM. Care este prefixul BOM?

Faptul este că, atunci când a fost dezvoltată codificarea UTF-16, din anumite motive au decis să-i atașeze un lucru precum capacitatea de a scrie un cod de caractere, atât în ​​secvență directă (de exemplu, 0A15), cât și invers (150A). . Și pentru ca programele să înțeleagă în ce secvență să citească codurile, a fost inventat BOM(Byte Order Mark sau, cu alte cuvinte, semnătură), care a fost exprimată prin adăugarea a trei octeți suplimentari chiar la începutul documentelor.

În codificarea UTF-8, consorțiul Unicode nu prevedea nicio BOM și, prin urmare, adăugarea unei semnături (acești trei octeți suplimentari cei mai notori la începutul documentului) împiedică pur și simplu unele programe să citească codul. Prin urmare, atunci când salvăm fișiere în UTF, trebuie să alegem întotdeauna opțiunea fără BOM (fără semnătură). Deci avansi protejează-te de crawling krakozyabry.

În mod remarcabil, unele programe din Windows nu știu cum să facă acest lucru (nu pot salva text în UTF-8 fără BOM), de exemplu, același Windows Notepad notoriu. Salvează documentul în UTF-8, dar încă adaugă semnătura (trei octeți suplimentari) la începutul acestuia. Mai mult, acești octeți vor fi întotdeauna aceiași - citiți codul în secvență directă. Dar pe servere, din cauza acestui lucru mic, poate apărea o problemă - va ieși krakozyabry.

Prin urmare, în niciun caz nu utilizați notepad Windows obișnuit pentru editarea documentelor site-ului dvs., dacă nu doriți apariția krakozyabrov. Consider că editorul Notepad ++ deja menționat este cea mai bună și mai simplă opțiune, care practic nu are dezavantaje și constă doar din avantaje.

În Notepad++, atunci când selectați o codificare, veți avea opțiunea de a converti textul în codificare UCS-2, care este în mod inerent foarte apropiat de standardul Unicode. De asemenea, în Notepad va fi posibilă codificarea textului în ANSI, adică. în raport cu limba rusă, acesta va fi Windows 1251, pe care l-am descris deja puțin mai sus.De unde provin aceste informații?

Este înregistrată în registrul blocului dumneavoastră de operație sisteme Windows- ce codificare sa alegeti in cazul ANSI, care sa alegeti in cazul OEM (pentru limba rusa va fi CP866). Dacă instalați o altă limbă implicită pe computer, atunci aceste codificări vor fi înlocuite cu altele similare din categoria ANSI sau OEM pentru aceeași limbă.

După ce salvați documentul în Notepad ++ în codificarea de care aveți nevoie sau deschideți documentul de pe site pentru editare, puteți vedea numele acestuia în colțul din dreapta jos al editorului:

Pentru a evita krakozyabrov, pe lângă acțiunile descrise mai sus, va fi util să scrieți informații despre această codificare în antetul său al codului sursă al tuturor paginilor site-ului, astfel încât să nu existe confuzii pe server sau pe gazda locală.

În general, în toate limbajele de marcare hipertext, cu excepția Html, este utilizată o declarație xml specială, care specifică codificarea textului.

Înainte de a analiza codul, browserul știe ce versiune este utilizată și cum trebuie interpretate exact codurile de caractere ale acelei limbi. Dar ce este remarcabil, dacă salvați documentul în unicode implicit, atunci această declarație xml poate fi omisă (codificarea va fi considerată UTF-8 dacă nu există BOM sau UTF-16 dacă există o BOM).

În cazul unui document Limbajul HTML folosit pentru a specifica codificarea Element meta, care este scris între eticheta Head de deschidere și de închidere:

... ...

Această intrare este destul de diferită de cea acceptată în , dar este pe deplin în concordanță cu noul standard HTML 5 care este introdus încet, și va fi înțeles absolut corect de oricine îl folosește. acest moment browsere.

În teorie, elementul Meta cu codificarea document html mai bine ar fi pus cât mai sus posibil în antetul documentului astfel încât la momentul întâlnirii în textul primului caracter nu din ANSI de bază (care va fi întotdeauna citit corect și în orice variație), browserul ar trebui să aibă deja informații despre modul de interpretare a codurilor acestor caractere.

Multă baftă! Ne vedem curând pe site-ul paginilor blogului

S-ar putea să fiți interesat

Ce adresa URL Care este diferența dintre linkurile absolute și relative pentru un site
OpenServer - modern server localși un exemplu de utilizare a acestuia pentru Instalări WordPress pe calculator
Ce este Chmod, ce permisiuni să atribuiți fișierelor și folderelor (777, 755, 666) și cum se face prin PHP
Căutare Yandex pe site și magazin online

În încercarea de a configura cutare sau cutare funcție a Internetului, orice utilizator trebuie să fi dat peste un concept precum „Unicode”. Pentru a afla ce înseamnă acest concept, citiți Acest articol a se termina.

„Unicode”: definiție

Termenul „Unicode” se referă astăzi la un standard de codificare a caracterelor. Acest standard a fost propus în 1991 de către organizația non-profit Unicode Inc. Standardul Unicode a fost conceput pentru a combina un număr mare de caractere diferite într-un singur document. O pagină creată pe baza unei astfel de codificări poate conține hieroglife, litere și simboluri matematice. În această codificare, toate caracterele sunt afișate fără probleme.

„Unicode”: motive pentru creare

Cu mult înainte de apariția sistemului Unicode, codificările erau alese pe baza preferințelor autorului documentului. De multe ori din acest motiv, pentru a citi un document, a fost necesar să se folosească tabele diferite. Cu toate acestea, acest lucru a trebuit făcut de mai multe ori. Acest lucru complică semnificativ viața utilizatorilor obișnuiți. După cum am menționat mai devreme, în 1991, pentru a rezolva această problemă, organizația non-profit Unicode Inc. a propus utilizarea unui nou tip de codificare a informațiilor. Acest tip codificarea a fost creată pentru a combina o mare varietate de standarde. Codificarea Unicode ne-a permis să realizăm imposibilul: să creăm un instrument care acceptă o mare varietate de caractere. Rezultatul a depășit așteptările: s-au obținut documente care puteau conține simultan atât text în rusă, cât și în engleză, precum și expresii matematice și latină. Înainte de creație sistem unificat dezvoltatorii de codificare au fost nevoiți să rezolve o serie de probleme care decurg din existența unui număr mare de standarde care existau deja pe acest moment. Cele mai frecvente dintre aceste probleme au fost limitările setului de caractere, scripturile elfice, duplicarea fonturilor și problema conversiei diferitelor codificări.

„Unicode”: o digresiune în istorie

Imaginează-ți următoarea imagine: în curtea anilor 80, tehnologia computerelor nu a devenit încă atât de răspândită și are un aspect diferit de cel de astăzi. Fiecare sistem de operare este unic în felul său și modificat de pasionați pentru anumite nevoi specifice. Ca urmare, nevoia de schimb de informații a condus la îmbunătățiri suplimentare. Când încercați să citiți un document creat într-un alt sistem de operare, pe ecran erau afișate de obicei seturi de caractere ciudate. Acest lucru a necesitat lucrări suplimentare cu codificarea, care nu a fost întotdeauna posibil să fie finalizată rapid. Uneori, a fost nevoie de câteva luni pentru a procesa documentul necesar. Utilizatorii care trebuie adesea să facă schimb de informații au început să creeze pentru ei înșiși tabele de conversie speciale. Lucrul cu astfel de tabele a relevat o caracteristică interesantă: este necesar să se creeze astfel de tabele simultan în două direcții. Aparatul nu poate efectua o inversare banală a calculelor. Pentru aceasta, fișierul sursă este scris în coloana din dreapta, iar rezultatul este scris în stânga. Dimpotrivă, nu pot fi rearanjate. Dacă trebuie să utilizați unele caractere speciale în document, mai întâi trebuie să le adăugați și apoi să explicați altui utilizator ce trebuie făcut cu ele, astfel încât să nu se transforme în „fisuri”. De asemenea, merită luat în considerare faptul că fiecare codificare a trebuit să-și dezvolte propriile fonturi. Acest lucru a dus la crearea unui număr mare de duplicate în sistemul de operare. Deci, de exemplu, pe o pagină, utilizatorul ar putea vedea o duzină de fonturi identice cu standardul Times New Roman, dar marcate cu UCS-2, UTF-16, UTF-8, ANSI. Astfel, este nevoie de a dezvolta un standard universal.

„Unicode”: creatori

Începutul istoriei creării „Unicode” poate fi atribuit anului 1987. Atunci Joe Becker de la Xerox, împreună cu Mark Davis și Lee Collins de la Apple, au început cercetările pentru dezvoltarea practică a unei codări universale. În 1988, Joe Becker a publicat un plan pentru o codificare multilingvă internațională. Câteva luni mai târziu, grupul de lucru Unicode a fost extins. Acesta a inclus experți precum Glenn Wright de la Sun Microsystems, Mike Kernegan și Ken Whistler de la RLG. Acest lucru a făcut posibilă finalizarea lucrărilor privind formarea preliminară a unui singur standard de codare.

„Unicode”: o descriere generală

Unicode se bazează pe concept general simbol. Această definiție este înțeleasă ca un fenomen abstract care există sub formă de scriere, realizat prin grafeme. În Unicode, fiecărui caracter i se atribuie un cod unic care aparține unuia sau altuia bloc al standardului. Deci, de exemplu, grafema „B” este prezentă atât în ​​engleză, cât și în rusă, dar corespunde la două caractere diferite. Aceste caractere pot fi, de asemenea, convertite în litere mici. Aceasta înseamnă că fiecare dintre aceste simboluri este descris de o cheie, un set de proprietăți și un nume.

„Unicode”: avantaje

Unicode se deosebește de alte sisteme moderne de codare printr-o cantitate mare de caractere pentru „criptarea” diferitelor caractere. Chestia este că codificările anterioare aveau doar 8 biți. Aceasta înseamnă că au acceptat doar 28 de caractere. Noua dezvoltare a avut 216 caractere, ceea ce a fost un mare pas înainte. Astfel, a devenit posibilă codificarea aproape a tuturor alfabetelor existente. Necesitatea utilizării tabelelor de conversie odată cu apariția „Unicode” a dispărut. Existența unui singur standard a redus pur și simplu utilitatea acestora la zero. În același timp, a dispărut și „kryakozyabry”. Apariția unui nou standard a făcut imposibilă existența lor. Necesitatea de a crea fonturi duplicate a fost, de asemenea, eliminată.

„Unicode”: dezvoltare

În ciuda faptului că progresul nu stă pe loc, codarea Unicode continuă să dețină o poziție de lider în lume. Acest lucru a devenit posibil în mare parte datorită faptului că a devenit ușor de implementat și utilizat pe scară largă. Cu toate acestea, nu trebuie să presupunem că astăzi este folosită aceeași codificare Unicode ca acum 25 de ani. Astăzi este folosită versiunea 5.x.x. Numărul de caractere codificate a crescut la 231. De la începuturile sale și până la apariția versiunii 2.0.0, codarea Unicode aproape a dublat numărul de caractere incluse în ea. În anii următori, această creștere a oportunităților a continuat. Până la apariția versiunii 4.0.0, a devenit necesară creșterea standardului în sine. Drept urmare, codificarea Unicode a luat forma în care o cunoaștem astăzi.

Ce altceva este util în Unicode? Pe lângă numărul imens, în continuă creștere de caractere, codificarea Unicode are o caracteristică destul de utilă. Aceasta este normalizarea. Codificarea nu irosește resursele computerului prin verificarea regulată a aceluiași caracter, care poate avea o ortografie similară în alfabete diferite. În acest scop, se folosește un algoritm special, care face posibilă extragerea separată a caracterelor similare într-o coloană și accesarea acestora, mai degrabă decât verificarea tuturor informațiilor de fiecare dată. În total, patru astfel de algoritmi au fost dezvoltați și implementați. Transformarea în fiecare dintre ele se realizează după un anumit principiu care diferă de alții.

Fiecare utilizator de internet, în încercarea de a configura una sau alta dintre funcțiile sale, a văzut cel puțin o dată cuvântul scris „Unicode” pe afișaj. Ce este, veți afla citind acest articol.

Definiție

Unicode este un standard de codificare a caracterelor. A fost propus de organizația non-profit Unicode Inc. în 1991. Standardul a fost dezvoltat cu scopul de a combina cât mai multe tipuri diferite de caractere într-un singur document. O pagină creată pe baza ei poate conține litere și hieroglife din diferite limbi (de la rusă la coreeană) și simboluri matematice. În acest caz, toate caracterele din această codificare sunt afișate fără probleme.

Motive pentru creație

Pe vremuri, cu mult înainte de apariția sistemului Unicode unificat, codificarea a fost aleasă în funcție de preferințele autorului documentului. Din acest motiv, nu era neobișnuit să citiți un singur document prin utilizarea mese diferite. Uneori, acest lucru trebuia făcut de mai multe ori, ceea ce a complicat semnificativ viața unui utilizator obișnuit. După cum sa menționat deja, o soluție la această problemă a fost propusă în 1991 de către organizația non-profit Unicode Inc., care a propus un nou tip de codificare a caracterelor. Acesta a fost destinat să unească standarde învechite și diverse. „Unicode” este o codificare care a făcut posibilă realizarea de neconceput la acea vreme: crearea unui instrument care acceptă un număr mare de caractere. Rezultatul a depășit multe așteptări - au apărut documente care conțineau simultan atât text în limba engleză, cât și în rusă, expresii latine și matematice.

Dar crearea unei singure codări a fost precedată de necesitatea de a rezolva o serie de probleme care au apărut din cauza varietății uriașe de standarde care existau deja la acea vreme. Cele mai comune dintre ele:

  • litere elfice sau „krakozyabry”;
  • set limitat de caractere;
  • problema de conversie de codificare;
  • fonturi duplicat.

O mică excursie istorică

Imaginează-ți că este în anii 80. Tehnologia calculatoarelor nu este încă atât de comun și are un aspect diferit de cel de astăzi. La acel moment, fiecare sistem de operare este unic în felul său și modificat de fiecare entuziast pentru nevoi specifice. Nevoia de a împărtăși informații se transformă într-o rafinare suplimentară a tot ceea ce există în lume. O încercare de a citi un document creat sub alt sistem de operare afișează adesea un set de caractere de neînțeles pe ecran și încep jocurile cu codare. Nu este întotdeauna posibil să faceți acest lucru rapid și, uneori, documentul necesar poate fi deschis în șase luni, sau chiar mai târziu. Persoanele care fac schimb de informații își creează frecvent tabele de conversie. Și lucrul la ele dezvăluie detaliu interesant: trebuie să le creați în două direcții: „de la al meu la al tău” și invers. Mașina nu poate face o inversare banală a calculelor, pentru ea sursa este în coloana din dreapta, iar rezultatul este în stânga, dar nu invers. Dacă a fost nevoie să se folosească caractere speciale în document, acestea trebuie mai întâi adăugate și apoi să explice partenerului ce trebuie să facă pentru ca aceste caractere să nu se transforme în „nebuni”. Și să nu uităm că pentru fiecare codificare a trebuit să dezvoltăm sau să implementăm propriile fonturi, ceea ce a dus la crearea unui număr mare de duplicate în sistemul de operare.

Imaginați-vă și că pe pagina de fonturi veți vedea 10 bucăți de Times New Roman identice cu semne mici: pentru UTF-8, UTF-16, ANSI, UCS-2. Acum înțelegeți că dezvoltarea unui standard universal era o nevoie urgentă?

„Părinți creatori”

Originile Unicode pot fi urmărite încă din 1987, când Joe Becker de la Xerox, împreună cu Lee Collins și Mark Davis de la Apple, au început cercetările pentru crearea practică a unui set de caractere universal. În august 1988, Joe Becker a publicat un proiect de propunere pentru un sistem de codificare multilingv internațional pe 16 biți.

După câteva luni grup de lucru Unicode a fost extins pentru a include Ken Whistler și Mike Kernegan de la RLG, Glenn Wright de la Sun Microsystems și alți câțiva, completând munca preliminară asupra unui singur standard de codare.

descriere generala

Unicode se bazează pe conceptul de caracter. Această definiție se referă la un fenomen abstract care există într-un anumit tip de scriere și este realizat prin grafeme („portretele”). Fiecare caracter este specificat în „Unicode” printr-un cod unic aparținând unui anumit bloc al standardului. De exemplu, grafemul B există atât în ​​alfabetul englez, cât și în cel rus, dar în Unicode are 2 caractere diferite. Li se aplică o transformare, adică fiecare dintre ele este descrisă de o cheie de bază de date, un set de proprietăți și un nume complet.

Beneficiile Unicode

De la alți contemporani, codificarea Unicode s-a remarcat printr-o cantitate uriașă de caractere pentru „criptarea” caracterelor. Cert este că predecesorii săi aveau 8 biți, adică suportau 28 de caractere, dar noua dezvoltare avea deja 216 caractere, ceea ce a fost un pas uriaș înainte. Acest lucru a făcut posibilă codificarea aproape a tuturor alfabetelor existente și comune.

Odată cu apariția „Unicode”, nu este nevoie să folosiți tabele de conversie: cum standard unic pur și simplu a negat nevoia lor. În același mod, „crakozyabry” s-au scufundat în uitare - un singur standard le-a făcut imposibile, precum și a eliminat nevoia de a crea fonturi duplicat.

Dezvoltarea Unicode

Desigur, progresul nu stă pe loc, iar de la prima prezentare au trecut 25 de ani. Cu toate acestea, codificarea Unicode își păstrează cu încăpățânare poziția în lume. În multe privințe, acest lucru a devenit posibil datorită faptului că a devenit ușor implementat și răspândit, fiind recunoscut de dezvoltatorii de software proprietar (plătit) și open source.

În același timp, nu ar trebui să presupunem că astăzi ne este disponibilă aceeași codare Unicode ca acum un sfert de secol. În acest moment, versiunea sa s-a schimbat la 5.x.x, iar numărul de caractere codificate a crescut la 231. Abilitatea de a utiliza o cantitate mai mare de caractere a fost abandonată pentru a menține în continuare suportul pentru Unicode-16 (o codificare în care numărul maxim a fost limitat la 216). De la începuturi și până la versiunea 2.0.0, „Standardul Unicode” a crescut numărul de caractere care au fost incluse în el, de aproape 2 ori. Creșterea oportunităților a continuat în anii următori. Până la versiunea 4.0.0, era deja nevoie de creșterea standardului în sine, ceea ce a fost făcut. Drept urmare, „Unicode” a dobândit forma în care îl cunoaștem astăzi.

Ce altceva este în Unicode?

Pe lângă numărul uriaș de personaje care se completează constant, are încă o caracteristică utilă. Aceasta este așa-numita normalizare. În loc să parcurgeți întregul document caracter cu caracter și să înlocuiți pictogramele corespunzătoare din tabelul de căutare, se folosește unul dintre algoritmii de normalizare existenți. Despre ce vorbim?

În loc să irosești resursele computerului la verificarea regulată a aceluiași caracter, care poate fi similar în alfabete diferite, se folosește un algoritm special. Vă permite să scoateți caractere similare într-o coloană separată a tabelului de înlocuire și să vă referiți deja la ele, și să nu verificați din nou toate datele din nou și din nou.

Au fost dezvoltați și implementați patru astfel de algoritmi. În fiecare dintre ele, transformarea are loc după un principiu strict definit, care diferă de celelalte, deci nu se poate numi niciuna dintre ele cea mai eficientă. Fiecare a fost dezvoltat pentru nevoi specifice, a fost implementat și utilizat cu succes.

Distribuirea standardului

În cei 25 de ani de istorie, Unicode este probabil cea mai utilizată codificare din lume. Programele și paginile web sunt, de asemenea, ajustate la acest standard. Faptul că Unicode este folosit astăzi de peste 60% din resursele de pe Internet poate vorbi despre amploarea aplicațiilor.

Acum știți când a apărut standardul Unicode. Ce este, de asemenea, știți și veți putea aprecia întreaga semnificație a invenției realizate de un grup de specialiști Unicode Inc. acum peste 25 de ani.

Acest site necesită JavaScript pentru a funcționa corect. Vă rugăm să activați JavaScript în setările browserului dvs.

Tabel de caractere Unicode

arata tot
Interval: 0000-001F: Caractere de control C0 0020-007F: Latină de bază 0080-009F: Caractere de control C1 00A0-00FF: Caractere suplimentare Latin-1 0100-017F: Latină extinsă-A 0180-024F: Latină extinsă 0180-024F: 2AF250-001 : Alfabet fonetic internațional extins 02B0-02FF: Caractere modificatoare extinse necombinabile 0300-036F: Semne diacritice combinabile 0370-03FF: Alfabetul grecesc și copt 0400-04FF: Chirilic 0500-052F: Caractere chirilice suplimentare - 0500-052F: Alfabetul chirilic suplimentar - 090505F0 - Armenian : Ebraică 0600-06FF: Arabă 0700-074F: Siriacă 0750-077F: Arabă suplimentară 0780-07BF: Tana (Maldive) 07C0-07FF: Nko 0800-083F: Samaritan 0840-0850F: Extindere Mandaeană 0808F: 0808A:-0808A -097F: Devanagari 0980-09FF: Bengali 0A00-0A7F: Gurmukhi 0A80-0AFF: Gujarati 0B00-0B7F: Oriya 0B80-0BFF: Tamil 0C00-0C7F: Telugu 0C80-0CFF: Kannada 0D00-0D7F: Malayalam 0D80-0DFF: Sinhaleză 0E00-0E7F: Thai 0E80-0EFF: Laos 0F00-0FFF: Tibetan 1000-109F: Myanmar 10A0-0E7F: Coreeană 10A0-0110FF: Georgiana -137F: silabar etiopian 1380-139F: caractere suplimentare etiopiene 13A0-13FF: scriere cherokee 1400-167F: silabară canadiană 1680-169F: Ogham 16A0-16FF: scriere runic 1714170171701701714: -175F: Buhid 1760-177F: Tagbanwa 1780-17FF: Script khmer 1800-18AF: Script veche mongolă 18B0-18FF: Silabar canadian extins 1900-194F: Script Limbu 1950-197F: DF9198 alphabet nou 19E0-19FF: caractere khmer 1A00-1A1F: script Bugi (Lontara) 1A20-1AAF: script vechi Tai Ly (Tai Tham) 1B00-1B7F: script balinez 1B80-1 BBF: Script sundanez 1BC0-1BFF: Script Batak 1C00-1C4F: Script Lepcha (Rong) 1C50-1C7F: Script Ol Chiki 1CD0-1CFF: Caractere vedice 1D00-1D7F: Extensii fonetice 1D80-1D7F: Extensii fonetice 1D80-1DBF: 1 Extensii suplimentare de telefon DC0-1DBF: semne diacritice combinabile 1E00-1EFF: Supliment extins latin 1F00-1FFF: Caracter grecesc extins 2000-206F: Semne de punctuație 2070-209F: Superscripte și indice 20A0-20CF: Simboluri valutare 20D0-240FF: Simboluri combinabile 20D0-240F: litera 240-210 caractere 2150-218F: Forme numerice 2190-21FF: Săgeți 2200-22FF: Operatori matematici 2300-23FF: Caractere tehnice diverse 2400-243F: Pictograme cod de control 2440-245F: Caractere OCR 245-240: Numere încorporate 245-240: Simboluri de chenar 2580-259F: Simboluri de umplere 25A0-25FF: Forme geometrice 2600-26FF: Simboluri diverse 27 00-27BF: Dingbats 27C0-27EF: Simboluri matematice diverse-A 27F0-27FF: Săgeți suplimentare-A 2800-28FF: Braille 2900-297F: Săgeți suplimentare-B 2980-29FF: Diverse simboluri matematice extra-00-2A2AFF: Operatori 2B00-2BFF: Simboluri și săgeți diverse 2C00-2C5F: Glagolitic 1AB0-1AFF: Diacritice combinate (Extensia A) 1CC0-1CCF: Set de caractere Sundanese extins A9E0-A9FF: Script Myanmar (Extensie B: Script AAEFF) Set AB30-AB8F: Latin Extended-E AB30-AB6F: Varang-Kshiti AB90-ABBF: Beria Zaghawa Script 2C60-2C7F: Latin Extended-C 2C80-2CFF: Copte Script 2D00-2D2F: Suplimentar Georgian Script 2D2F30:-Tifinagh -2DDF: set de caractere etiopic extins 2DE0-2DFF: chirilic extins-A 2E00-2E7F: Semne suplimentare punctuație 2E80-2EFF: Taste de caractere suplimentare CJK 2F00-2FDF: Chei de caractere din dicționarul Kangxi 2FF0-2FFF: Caractere de descriere a caracterelor 3000-303F: Caractere CJC și semne de punctuație 3040-309F: Hiragana-3040-309F: Hiragana-30FF0:00300303003030300303033130-318F: Chamo combinat cu Hangul 3190-319F: Caractere utilizate în kambun 31A0-31BF: Setul de caractere extins Bopomofo 31C0-31EF: Caracteristici CJK 31F0-31FF: Extensii fonetice Katakana 3200-32FF30 luni și litere imbricate CJK3FF30: Marcaje de compatibilitate CJK 3400-4DBF: caractere unificate CJK (extensia A) 4DC0-4DFF: hexagrame I Ching 4E00-9FFF: caractere unificate CJC A000-A48F: silabe și A490-A4CF: radicale și A4D0 -A4F0: alfabetul Li-A4: Silabar Vai A640-A69F: Chirilic Extins-B A6A0-A6FF: Bamum Script A700-A71F: Simboluri de schimbare a tonului A720-A7FF: Latină extinsă-D A800-A82F: Siloti Nagri A830-A83F: Simboluri numerice indiane A87: A840 Pătrat Phagba Lama A880-A8DF: Saurashtra A8E0-A8FF: Devanagari Extended Character A900-A92F: Kayah Li A930-A95F: Rejang A960-A97F: Hangul (Extensie A) A980-A9DF: javaneză AA00-AA5F: Script AA00-AA5F: (Extensia A) AA80-AADF: Scrierea Tai Viet AB00-AB2F: Scrierea etiopiană (Extensia A) ABC0-ABFF: Meitei/Manipuri AC00-D7AF: Silabe Hangul D800-DB7F: Partea de sus a perechilor surogat DB80 -DBFF: Partea superioară a privatului utilizați perechi surogat DC00-DFFF: Partea inferioară a perechilor surogat E000-F8FF: Zona de utilizare privată F900-FAFF: caractere compatibile CJK FB00-FB4F: Forme de reprezentare alfabetică FB50-FDCF: Forme de reprezentare cu literă A arabă FDF0-FDFF: Arabă-A Formulare de reprezentare FE00-FE0F: Selectoare variante de stil FE10-FE1F: Forme verticale FE20-FE2F: Jumătăți combinabile de caractere FE30-FE4F: Formulare de compatibilitate CJC FE50-FE6F: Variante de dimensiuni mici FE70-FE FF: Formulare cu literă arabă-B FF00-FFEF: Formulare pe jumătate și lățime completă FFF0-FFFF: Caractere speciale

  • Ce este Unicode?

    Unicode(Engleză) Unicode) este un standard universal de codificare a caracterelor care vă permite să furnizați caractere din toate limbile lumii.

    Spre deosebire de ASCII, un caracter este codificat ca doi octeți, permițând utilizarea 65 536 personaje, contra 256 .

    După cum știți, un octet este un număr întreg de la zero inainte de 255 . La rândul său, un octet este format din opt biți care stochează valori numerice în formă binară, unde fiecare unitate următoare a bitului curent este de două ori mai mare decât valoarea bitului anterior. Astfel, doi octeți pot stoca un număr de la zero inainte de 65 535 , ceea ce face posibilă utilizarea 65 536 caractere (zero + 65 535 , zero este și un număr, nu este nimic).

    Caracterele Unicode sunt împărțite în secțiuni. Primul 128 tabelul repetă caracterele ASCII.

    Familia de codificări este responsabilă pentru afișarea caracterelor. Unicode (Format de transformare Unicode - UTF). Cea mai cunoscută și folosită codificare este UTF-8.

  • Cum se folosește masa?

    Simbolurile sunt prezentate în 16 bucăți pe linie. De sus se vede număr hexazecimal din 0 inainte de 16 . În stânga, numere similare în formă hexazecimală din 0 inainte de FFF.
    Conectând numărul din stânga cu numărul din partea de sus, puteți afla codul caracterului. De exemplu: scrisoare engleză F situat pe linie 004 , într-o coloană 6 : 004 + 6 = cod de caractere 0046 .

    Cu toate acestea, puteți pur și simplu să treceți cu mouse-ul peste simbol specificîn tabel pentru a afla codul caracterului. Sau faceți clic pe un simbol pentru a-l copia sau codul acestuia într-unul dintre formatele.

    Puteți introduce cuvinte cheie de căutare în câmpul de căutare, de exemplu: săgeți, soare, inimă. Sau puteți specifica codul caracterului în orice format, de exemplu: 1123, 04BC, چ. Sau simbolul în sine, dacă doriți să cunoașteți codul simbolului.

    Cautat de Cuvinte cheie este în prezent în curs de dezvoltare, deci este posibil să nu producă rezultate. Dar multe simboluri populare pot fi deja găsite.

Credeți sau nu, există un format de imagine încorporat în browser. Acest format vă permite să descărcați imagini înainte de a fi necesare, oferă redarea imaginii în mod normal sau ecrane de retinăși vă permite să adăugați imagini css. OK, nu este în întregime adevărat. Acesta nu este un format de imagine, deși totul este încă valabil. Folosind-o, puteți crea pictograme care sunt independente de rezoluție, care nu necesită timp pentru a se încărca și care pot fi stilate folosind CSS.

Ce este Unicode?

Unicode este capacitatea de a afișa corect literele și semnele de punctuație din diferite limbi pe aceeași pagină. Este incredibil de util: utilizatorii vor putea lucra cu site-ul dvs. din întreaga lume și vă va arăta ceea ce doriți - poate fi franceză cu semne diacritice sau Kanji .

Unicode continuă să evolueze: acum versiunea actuală este 8.0, care are peste 120 de mii de caractere (în articolul original publicat la începutul lui 2014, era vorba despre versiunea 6.3 și 110 mii de caractere).

Pe lângă litere și cifre, există și alte caractere și pictograme în Unicode. LA ultimele versiuni acestea au inclus emoji, pe care le puteți vedea în iOS messenger.

Pagini HTML sunt create dintr-o secvență de caractere Unicode și sunt convertite în octeți atunci când sunt trimise prin rețea. Fiecare literă și fiecare simbol al oricărei limbi are propriul cod unic și este codificat atunci când fișierul este salvat.

Când utilizați sistemul de codare UTF-8, puteți introduce direct caractere Unicode în text, dar puteți adăuga și caractere Unicode în text specificând o legătură simbolică numerică. De exemplu, acesta este un simbol de inimă și puteți afișa acest simbol prin simpla adăugare a codului la marcaj.

Această referință numerică poate fi specificată atât în ​​format zecimal, cât și în format hexazecimal. Formatul zecimal necesită adăugarea litera x la început, intrarea va oferi aceeași inimă ( ) ca și opțiunea anterioară. (2665 este versiunea hexazecimală a lui 9829).

Dacă adăugați un caracter Unicode cu CSS, atunci puteți utiliza numai valori hexazecimale.

Unele dintre cele mai frecvent utilizate caractere Unicode au nume textuale sau abrevieri mai memorabile în loc de coduri numerice, cum ar fi ampersand (& - &). Se numesc astfel de personaje mnemonice în HTML, lista lor completă este pe Wikipedia.

De ce ar trebui să folosești Unicode?

Bună întrebare, iată câteva motive:

  1. Pentru a utiliza caractere corecte din diferite limbi.
  2. Pentru a înlocui pictogramele.
  3. Pentru a înlocui pictogramele conectate prin @font-face .
  4. Pentru a seta clase CSS

Caractere corecte

Primul dintre motive nu necesită nicio măsură suplimentară. Dacă HTML-ul este salvat în format UTF-8 și codificarea lui este transmisă prin rețea ca UTF-8, totul ar trebui să funcționeze așa cum ar trebui.

Trebuie sa. Din păcate, nu toate browserele și dispozitivele acceptă toate caracterele Unicode în același mod (mai precis, nu toate fonturile acceptă setul complet de caractere). De exemplu, caracterele emoji nou adăugate nu sunt acceptate peste tot.

Pentru suport UTF-8 în HTML5 adăugați (dacă nu aveți acces la setările serverului, ar trebui să adăugați și ). Vechiul doctype folosește ( ).

icoane

Al doilea motiv pentru a folosi Unicode este acela de a avea un numar mare simboluri utile care pot fi folosite ca pictograme. De exemplu, , ≡ și .

Avantajul lor evident este că nu aveți nevoie de niciunul fișiere suplimentare pentru a le adăuga pe pagină, ceea ce înseamnă că site-ul tău va fi mai rapid. De asemenea, le puteți schimba culoarea sau adăuga o umbră cu CSS. Și prin adăugarea de tranziții (tranziție CSS) puteți schimba ușor culoarea pictogramei atunci când treceți cu mouse-ul peste ea, fără imagini suplimentare.

Să presupunem că vreau să includ un indicator de rating cu stele pe pagina mea. Pot sa fac asa:

★ ★ ★ ☆ ☆

Veți obține următorul rezultat:

Dar dacă ai ghinion, vei vedea ceva de genul:

Aceeași evaluare și pe BlackBerry 9000

Acest lucru se întâmplă dacă caracterele folosite nu sunt în fontul browserului sau al dispozitivului (din fericire, aceste asteriscuri sunt acceptate perfect, iar vechile Telefoane Blackberry sunt singura excepție aici).

Dacă nu există niciun caracter Unicode, acesta poate fi înlocuit cu caractere care variază de la un pătrat gol (□) la un romb cu un semn de întrebare (�).

Dar cum găsești un caracter Unicode care ar putea fi potrivit pentru a fi folosit în designul tău? Puteți căuta pe un site precum Unicodinator uitându-vă la caracterele disponibile, dar există și cea mai bună opțiune. - acest site grozav vă permite să desenați pictograma pe care o căutați și apoi vă oferă o listă de caractere Unicode similare.

Folosind Unicode cu pictograme @font-face

Dacă utilizați pictograme care sunt legate cu un font extern prin @font-face , caracterele Unicode pot fi folosite ca alternativă. În acest fel, puteți afișa un caracter Unicode similar pe dispozitive sau browsere în care @font-face nu este acceptat:

În stânga sunt pictogramele Font Awesome în Chrome, iar în dreapta sunt caractere de înlocuire Unicode în Opera Mini.

Multe instrumente de potrivire @font-face folosesc intervalul de caractere Unicode din zona de utilizare privată. Problema cu această abordare este că, dacă @font-face nu este acceptat, codurile de caractere sunt transmise utilizatorului fără nicio semnificație.

Excelent pentru a crea seturi de pictograme în @font-face și vă permite să alegeți un caracter Unicode potrivit ca bază pentru pictogramă.

Dar fiți atenți - unele browsere și dispozitive nu le plac caracterele unice Unicode atunci când sunt utilizate cu @font-face . Este logic să verificați suportul pentru caractere Unicode cu Unify - această aplicație vă va ajuta să determinați cât de sigur este să utilizați un caracter în setul de pictograme @font-face.

Suport pentru caractere Unicode

Principala problemă cu utilizarea caracterelor Unicode ca alternativă este suportul slab în cititoarele de ecran (din nou, unele informații despre acest lucru pot fi găsite pe Unify), așa că este important să alegeți cu atenție caracterele pe care le utilizați.

Dacă pictograma dvs. este doar un element decorativ lângă o etichetă text care poate fi citită de un cititor de ecran, nu trebuie să vă faceți prea multe griji. Dar dacă pictograma este singură, merită să adăugați o etichetă de text ascunsă pentru a ajuta utilizatorii cititorului de ecran. Chiar dacă un caracter Unicode este citit de un cititor de ecran, există șansa ca acesta să fie foarte diferit de scopul propus. De exemplu, ≡ (≡) ca pictogramă hamburger va fi citită ca „identică” de VoiceOver pe iOS.

Unicode în numele claselor CSS

Faptul că Unicode poate fi folosit în numele claselor și în foile de stil este cunoscut încă din 2007. Atunci Jonathan Snook a scris despre utilizarea caracterelor Unicode în clasele de ajutor atunci când așează colțurile rotunjite. Această idee nu a primit prea multă distribuție, dar merită să știți despre posibilitatea de a folosi Unicode în numele claselor (caractere speciale sau chirilice).

Selectarea fontului

Puține fonturi acceptă setul complet de caractere Unicode, așa că asigurați-vă că verificați caracterele pe care le doriți atunci când alegeți un font.

O mulțime de pictograme în Segoe UI Symbol sau Arial Unicode MS. Aceste fonturi sunt disponibile atât pe PC, cât și pe Mac; Lucida Grande are, de asemenea, o cantitate destul de mare de caractere Unicode. Puteți adăuga aceste fonturi la declarația familiei de fonturi pentru a aplica numărul maxim de caractere Unicode pentru utilizatorii care au instalate aceste fonturi.

Determinarea suportului Unicode

Ar fi foarte convenabil să puteți verifica prezența unui anumit caracter Unicode, dar nu există o modalitate garantată de a face acest lucru.

Caracterele Unicode pot fi eficiente atunci când sunt acceptate. De exemplu, un emoji în linia de subiect a unui e-mail îl face să iasă în evidență de restul în cutie poștală.

Concluzie

Acest articol acoperă doar elementele de bază ale Unicode. Sper că îl găsiți util și vă ajuta să înțelegeți mai bine Unicode și să îl utilizați eficient.

Lista de linkuri

  • (Generator de set de pictograme @font-face bazat pe Unicode)
  • Shape Catcher (instrument de recunoaștere a caracterelor Unicode)
  • Unicodinator (tabel de caractere Unicode)
  • Unificare (verificați compatibilitatea cu caracterele Unicode în browsere)
  • Unitools (Colecție de instrumente pentru lucrul cu Unicode)