Kódovanie Unicode 2. Predpoklady pre vytvorenie a rozvoj Unicode

Dobrý deň, milí čitatelia blogu. Dnes sa s vami porozprávame o tom, odkiaľ pochádzajú krakozyabry na webe av programoch, aké textové kódovania existujú a ktoré by sa mali použiť. Pozrime sa bližšie na históriu ich vývoja, počnúc základným ASCII, ako aj jeho rozšírenými verziami CP866, KOI8-R, Windows 1251 a končiac modernými kódovaniami Unicode Consortium UTF 16 a 8.

Niekomu sa tieto informácie môžu zdať nadbytočné, ale viete, koľko otázok dostávam konkrétne v súvislosti s vylezenými krakozyabrs (nečitateľná sada znakov). Teraz budem mať príležitosť odkázať každého na text tohto článku a nezávisle hľadať moje zárubne. No pripravte sa na absorbovanie informácií a skúste sledovať priebeh príbehu.

ASCII - základné kódovanie textu pre latinku

Vývoj textových kódovaní nastal súčasne s formovaním IT priemyslu a počas tejto doby stihli prejsť mnohými zmenami. Historicky to všetko začalo EBCDIC, ktorý bol v ruskej výslovnosti dosť disonantný, čo umožnilo kódovať písmená latinskej abecedy, arabské číslice a interpunkčné znamienka s riadiacimi znakmi.

Východiskový bod pre vývoj moderného kódovania textu by sa však mal považovať za slávny ASCII(Americký štandardný kód pre výmenu informácií, ktorý sa v ruštine zvyčajne vyslovuje ako „aski“). Popisuje prvých 128 znakov najčastejšie používaných anglicky hovoriacimi používateľmi – latinské písmená, arabské číslice a interpunkčné znamienka.

Dokonca aj v týchto 128 znakoch opísaných v ASCII boli nejaké servisné znaky, ako sú zátvorky, čiary, hviezdičky atď. V skutočnosti ich môžete vidieť sami:

Práve týchto 128 znakov z pôvodnej verzie ASCII sa stalo štandardom a v akomkoľvek inom kódovaní sa s nimi určite stretnete a obstoja v tomto poradí.

Faktom však je, že pomocou jedného bajtu informácií je možné zakódovať nie 128, ale až 256 rôznych hodnôt (dve na osem sa rovná 256). základná verzia Asuka objavila číslo rozšírené ASCII kódovanie, v ktorej bolo možné okrem 128 základných znakov kódovať aj symboly národného kódovania (napríklad ruské).

Tu pravdepodobne stojí za to povedať trochu viac o číselných systémoch, ktoré sa používajú v popise. Po prvé, ako všetci viete, počítač pracuje iba s číslami v dvojkovej sústave, konkrétne s nulami a jednotkami („Booleovská algebra“, ak niekto študoval na inštitúte alebo v škole). , z ktorých každý je dvojkou v stupni počnúc nulou a až dvojkou v siedmom stupni:

Nie je ťažké pochopiť, že všetkých možných kombinácií núl a jednotiek môže byť v takejto konštrukcii len 256. Preložiť číslo z binárny systém na desatinné číslo je celkom jednoduché. Stačí spočítať všetky mocniny dvoch, nad ktorými sú jednotky.

V našom príklade je to 1 (2 na nulu) plus 8 (dva na 3), plus 32 (dva na piatu), plus 64 (na šiestu), plus 128 (na siedmu) . Celkovo dostane 233 palcov desiatková sústava zúčtovanie. Ako vidíte, všetko je veľmi jednoduché.

Ak sa však bližšie pozriete na tabuľku s ASCII znakmi, uvidíte, že sú zastúpené v hexadecimálnom kódovaní. Napríklad "hviezdička" zodpovedá v Asci hexadecimálnemu číslu 2A. Pravdepodobne to poznáte v hexadecimálna sústavačíslice sa používajú okrem arabských číslic aj latinské písmená od A (znamená desať) po F (znamená pätnásť).

No pre previesť binárne na hexadecimálne uchýlite sa k nasledujúcej jednoduchej a vizuálnej metóde. Každý bajt informácií je rozdelený na dve časti po štyroch bitoch, ako je znázornené na obrázku vyššie. To. v každom polovičnom byte je možné v binárnom kóde zakódovať iba šestnásť hodnôt (od dvoch do štvrtej mocniny), ktoré možno ľahko znázorniť ako hexadecimálne číslo.

Navyše v ľavej polovici bajtu bude potrebné znova počítať stupne, počnúc od nuly, a nie ako je znázornené na snímke obrazovky. Vo výsledku jednoduchými výpočtami dostaneme, že na snímke obrazovky je zakódované číslo E9. Dúfam, že priebeh môjho uvažovania a riešenie tejto hádanky vám bolo jasné. Teraz poďme v skutočnosti hovoriť o kódovaní textu.

Rozšírené verzie Asuka - kódovania CP866 a KOI8-R s pseudografiou

Začali sme teda hovoriť o ASCII, ktoré bolo, ako keby, východiskovým bodom pre vývoj všetkých moderných kódovaní (Windows 1251, Unicode, UTF 8).

Spočiatku obsahoval iba 128 znakov latinskej abecedy, arabské číslice a niečo iné, ale v rozšírenej verzii bolo možné použiť všetkých 256 hodnôt, ktoré je možné zakódovať do jedného bajtu informácií. Tie. bolo možné pridať znaky písmen vášho jazyka do Asci.

Tu bude potrebné ešte raz odbočiť, aby som vysvetlil - Prečo vôbec potrebujete kódovanie? texty a prečo je to také dôležité. Postavy na obrazovke vášho počítača sú tvorené na základe dvoch vecí – množín vektorových tvarov (reprezentácií) všetkých druhov znakov (sú v co súboroch) a kódu, ktorý vám umožňuje vytiahnuť z tejto množiny vektorových tvarov ( súbor písma) presne ten znak, ktorý potrebujete vložiť na správne miesto.

Je jasné, že fonty sú zodpovedné za samotné vektorové formy, no za kódovanie zodpovedá operačný systém a v ňom použité programy. Tie. akýkoľvek text vo vašom počítači bude množinou bajtov, z ktorých každý zakóduje jeden jediný znak práve tohto textu.

Program, ktorý zobrazuje tento text na obrazovke (textový editor, prehliadač atď.), pri analýze kódu načíta kódovanie ďalšieho znaku a hľadá zodpovedajúcu vektorovú formu v požadovaný súbor písmo, ktoré je pripojené na zobrazenie tohto textového dokumentu. Všetko je jednoduché a banálne.

To znamená, že na zakódovanie akéhokoľvek znaku, ktorý potrebujeme (napríklad z národnej abecedy), musia byť splnené dve podmienky - vektorová forma tohto znaku musí byť v použitom fonte a tento znak by mohol byť zakódovaný v rozšírených ASCII kódovaniach. v jednom byte. Preto existuje veľa takýchto možností. Iba na kódovanie znakov ruského jazyka existuje niekoľko odrôd rozšírenej Aska.

Napríklad, spočiatku tam bolo CP866, v ktorej bolo možné použiť znaky ruskej abecedy a išlo o rozšírenú verziu ASCII.

Tie. jeho horná časť sa úplne zhodovala so základnou verziou Asuka (128 latinských znakov, čísel a iných svinstiev), ktorá je zobrazená na obrázku vyššie, ale spodná časť tabuľky s kódovaním CP866 mala podobu zobrazenú na obrázku nižšie a umožnilo zakódovať ďalších 128 znakov (ruské písmená a všetky druhy pseudografík):

Vidíte, v pravom stĺpci čísla začínajú 8, pretože čísla od 0 do 7 sa vzťahujú na základnú časť ASCII (pozri prvú snímku obrazovky). To. ruské písmeno "M" v CP866 bude mať kód 9C (nachádza sa na priesečníku zodpovedajúceho riadku s 9 a stĺpca s číslom C v systéme hexadecimálnych čísel), ktorý možno zapísať do jedného bajtu informácie, a ak existuje vhodné písmo s ruskými znakmi, toto písmeno sa bez problémov zobrazí v texte.

Odkiaľ sa táto suma vzala? pseudografika v CP866? Ide o to, že toto kódovanie pre ruský text bolo vyvinuté v tých chlpatých rokoch, keď neexistovala taká distribúcia grafických operačných systémov ako teraz. A v Dose a podobných textových operačných systémoch pseudografika umožnila nejakým spôsobom diverzifikovať dizajn textov, a preto oplýva CP866 a všetkými jeho ďalšími rovesníkmi z kategórie rozšírených verzií Asuka.

CP866 distribuovala spoločnosť IBM, ale okrem toho bolo vyvinutých niekoľko kódovaní pre ruské znaky, napríklad rovnaký typ (rozšírené ASCII) možno pripísať KOI8-R:

Princíp jeho fungovania zostáva rovnaký ako pri CP866 opísanom o niečo skôr – každý znak textu je zakódovaný jedným jediným bajtom. Snímka obrazovky zobrazuje druhú polovicu tabuľky KOI8-R, pretože prvá polovica plne zodpovedá základnej Asuke, ktorá je zobrazená na prvej snímke obrazovky v tomto článku.

Medzi vlastnosti kódovania KOI8-R možno poznamenať, že ruské písmená v jeho tabuľke nie sú v abecednom poradí, ako to bolo napríklad v CP866.

Ak sa pozriete na úplne prvú snímku obrazovky (základnej časti, ktorá je súčasťou všetkých rozšírených kódovaní), všimnete si, že v KOI8-R sa ruské písmená nachádzajú v rovnakých bunkách tabuľky ako písmená spoluhlásky latinskej abecedy. s nimi z prvej časti tabuľky. Bolo to urobené pre pohodlie prechodu z ruských na latinské znaky vyradením iba jedného bitu (od dvoch do siedmej mocniny alebo 128).

Windows 1251 - moderná verzia ASCII a prečo krakozyabry vyliezť von

Ďalší vývoj textových kódovaní bol spôsobený tým, že grafické operačné systémy získavali na popularite a potreba používať v nich pseudografiku časom zanikla. Výsledkom bola celá skupina, ktorá bola v podstate stále rozšírenými verziami Asuky (jeden textový znak je zakódovaný iba jedným bajtom informácie), ale bez použitia pseudografických znakov.

Patrili medzi takzvané kódovania ANSI, ktoré vyvinul American Standards Institute. V bežnej reči sa názov azbuka používal aj pre variant s podporou ruského jazyka. Príklad na to môže poslúžiť.

Priaznivo sa porovnáva s predtým používanými CP866 a KOI8-R v tom, že miesto pseudografických symbolov v ňom zaujali chýbajúce symboly ruskej typografie (okrem prízvuku), ako aj symboly používané v slovanských jazykoch blízko ruština (ukrajinská, bieloruská atď.):

Kvôli takému množstvu kódovania ruského jazyka, výrobcov a výrobcov písiem softvér neustále sa objavovala bolesť hlavy a my, milí čitatelia, sme sa často dostali von takí istí notorici krakozyabry keď došlo k zámene s verziou použitou v texte.

Veľmi často sa dostali von pri odosielaní a prijímaní správ cez e-mail, čo znamenalo vytvorenie veľmi zložitých konverzných tabuliek, ktoré v skutočnosti nedokázali vyriešiť tento problém v koreni, a používatelia často používali na korešpondenciu, aby sa vyhli notoricky známym krakozyabrom pri používaní ruských kódovaní ako CP866, KOI8-R alebo Windows 1251.

V skutočnosti bol výsledkom krakozyabry, vyliezajúci namiesto ruského textu nesprávne použitie kódovania daný jazyk, ktorý sa nezhodoval s tým, v ktorom bol zakódovaný textová správa spočiatku.

Povedzme, že ak sa znaky zakódované pomocou CP866 pokúsia zobraziť pomocou kódová tabuľka Windows 1251, potom vyjdú tie isté krakozyabry (nezmyselná sada znakov), ktoré úplne nahradia text správy.

Podobná situácia sa veľmi často vyskytuje na fórach alebo blogoch, keď je text s ruskými znakmi omylom uložený v nesprávnom kódovaní, ktoré sa na stránke štandardne používa, alebo v nesprávnom textový editor, ktorý do kódu pridáva gag, ktorý nie je voľným okom viditeľný.

Nakoniec sa veľa ľudí unavilo z takejto situácie s množstvom kódovaní a neustáleho vyťahovania krakozyabry, existovali predpoklady na vytvorenie novej univerzálnej variácie, ktorá by nahradila všetky existujúce a konečne by vyriešila problém s výskytom nečitateľných textov. . Okrem toho sa vyskytol problém jazykov ako čínština, kde bolo znakov jazyka oveľa viac ako 256.

Unicode (Unicode) - univerzálne kódovanie UTF 8, 16 a 32

Tieto tisíce znakov jazykovej skupiny juhovýchodnej Ázie nebolo možné žiadnym spôsobom opísať v jednom informačnom byte, ktorý bol pridelený na kódovanie znakov v rozšírených verziách ASCII. V dôsledku toho konzorcium tzv Unicode(Unicode - Unicode Consortium) v spolupráci s mnohými lídrami IT priemyslu (tí, ktorí vyrábajú softvér, ktorí kódujú hardvér, ktorí vytvárajú fonty), ktorí mali záujem o vznik univerzálneho kódovania textu.

Prvá variácia, ktorá bola vydaná pod záštitou Unicode Consortium, bola UTF-32. Číslo v názve kódovania znamená počet bitov, ktoré sa používajú na zakódovanie jedného znaku. 32 bitov sú 4 bajty informácií, ktoré budú potrebné na zakódovanie jedného znaku v novom univerzálnom kódovaní UTF.

Výsledkom je, že rovnaký súbor s textom, zakódovaný v rozšírenej verzii ASCII a v UTF-32, bude mať v druhom prípade veľkosť (hmotnosť) štyrikrát väčšiu. To je zlé, ale teraz máme možnosť zakódovať pomocou UTF počet znakov rovný dvom až tridsaťsekundovej mocnine ( miliardy znakov, ktorá pokryje akúkoľvek skutočne potrebnú hodnotu s obrovskou maržou).

Mnohé krajiny s jazykmi európskej skupiny však vôbec nepotrebovali použiť taký obrovský počet znakov v kódovaní, pri použití UTF-32 však dostali štvornásobné zvýšenie hmotnosti za nič. textové dokumenty a v dôsledku toho zvýšenie objemu internetovej prevádzky a množstva uložených dát. To je veľa a nikto by si takýto odpad nemohol dovoliť.

V dôsledku vývoja Unicode, UTF-16, ktorý sa ukázal byť taký úspešný, že bol prijatý ako predvolený základný priestor pre všetky znaky, ktoré používame. Na zakódovanie jedného znaku používa dva bajty. Pozrime sa, ako táto vec vyzerá.

AT operačný systém Windows, môžete ísť po ceste "Štart" - "Programy" - "Príslušenstvo" - "Pomôcky" - "Tabuľka znakov". V dôsledku toho sa otvorí tabuľka s vektorovými tvarmi všetkých písiem nainštalovaných vo vašom systéme. Ak zvolíte v " Ďalšie možnosti» Znaková sada Unicode, pre každé písmo samostatne vidíte celý rozsah znakov, ktoré obsahuje.

Mimochodom, kliknutím na ktorýkoľvek z nich sa vám zobrazí jeho dvojbajt kód vo formáte UTF-16 pozostávajúce zo štyroch hexadecimálnych číslic:

Koľko znakov je možné zakódovať v UTF-16 pomocou 16 bitov? 65536 (dva na šestnásť) a práve toto číslo bolo prijaté ako základný priestor v Unicode. Okrem toho existujú spôsoby, ako s ním zakódovať asi dva milióny znakov, ale obmedzené na rozšírený priestor na milión znakov textu.

Ale ani táto úspešná verzia kódovania Unicode nepriniesla veľké uspokojenie tým, ktorí písali povedzme programy iba v anglický jazyk, pretože po prechode z rozšírenej verzie ASCII na UTF-16 sa váha dokumentov zdvojnásobila (jeden bajt na znak v Asci a dva bajty na rovnaký znak v UTF-16).

To je všetko pre spokojnosť všetkých a všetkého v konzorciu Unicode, bolo rozhodnuté prísť kódovanie s premennou dĺžkou. Volá sa UTF-8. Napriek osmičke v názve má naozaj variabilnú dĺžku, t.j. každý textový znak možno zakódovať do sekvencie od jedného do šiestich bajtov.

V praxi sa v UTF-8 používa iba rozsah od jedného do štyroch bajtov, pretože za štyrmi bajtmi kódu si nie je možné nič ani len teoreticky predstaviť. Všetky latinské znaky v ňom sú zakódované do jedného bajtu, rovnako ako v starom dobrom ASCII.

Je pozoruhodné, že v prípade kódovania iba latinky aj tie programy, ktoré nerozumejú Unicode, budú stále čítať to, čo je zakódované v UTF-8. Tie. základná časť Asuka jednoducho prešla do tohto duchovného dieťaťa Unicode Consortium.

Znaky cyriliky v UTF-8 sú kódované v dvoch bajtoch a napríklad gruzínske znaky v troch bajtoch. Unicode Consortium po vytvorení UTF 16 a 8 vyriešilo hlavný problém - teraz ho máme písma majú jeden kódový priestor. A teraz ich výrobcovia môžu naplniť iba vektorovými formami textových znakov na základe ich silných stránok a schopností. Teraz dokonca v súpravách.

Vo vyššie uvedenej „Tabuľke znakov“ môžete vidieť, že rôzne písma podporujú rôzny počet znakov. Niektoré fonty bohaté na Unicode môžu byť veľmi veľké. Teraz sa však nelíšia v tom, že boli vytvorené pre rôzne kódovania, ale v tom, že výrobca písma až do konca vyplnil alebo nevyplnil jediný kódový priestor jednou alebo druhou vektorovou formou.

Krakozyabry namiesto ruských písmen - ako opraviť

Pozrime sa teraz, ako sa namiesto textu objavujú krakozyabry, alebo inými slovami, ako sa volí správne kódovanie pre ruský text. V skutočnosti sa nastavuje v programe, v ktorom vytvárate alebo upravujete rovnaký text alebo kód pomocou textových fragmentov.

Na úpravu a tvorbu textové súbory Osobne používam podľa mňa veľmi dobrý . Dokáže však zvýrazniť syntax mnohých ďalších programovacích a značkovacích jazykov a má tiež možnosť rozšírenia pomocou doplnkov. Čítať podrobný prehľad tento úžasný program na uvedenom odkaze.

V hornom menu programu Poznámkový blok ++ sa nachádza položka „Kódovanie“, kde budete mať možnosť previesť existujúcu možnosť na predvolene používanú možnosť:

V prípade stránky na Joomla 1.5 a vyššej, ako aj v prípade blogu na WordPress, aby sa predišlo výskytu chýb, zvoľte možnosť UTF8 bez kusovníka. Čo je predpona BOM?

Faktom je, že keď vyvinuli kódovanie UTF-16, z nejakého dôvodu sa rozhodli pripojiť k nemu niečo ako schopnosť písať znakový kód, a to v priamom poradí (napríklad 0A15) a naopak (150A). . A aby programy pochopili, v akom poradí čítať kódy, bolo vynájdené kusovník(Byte Order Mark alebo inými slovami podpis), ktorý bol vyjadrený pridaním troch dodatočných bajtov na úplný začiatok dokumentov.

V kódovaní UTF-8 nebol v konzorciu Unicode poskytnutý žiadny kusovník, a preto pridanie podpisu (tieto najznámejšie ďalšie tri bajty na začiatok dokumentu) jednoducho bráni niektorým programom čítať kód. Preto pri ukladaní súborov v UTF musíme vždy zvoliť možnosť bez kusovníka (bez podpisu). Takže napredujete chráňte sa pred plazením krakozyabry.

Je pozoruhodné, že niektoré programy vo Windows nevedia, ako to urobiť (nemôžu uložiť text v UTF-8 bez kusovníka), napríklad ten istý notoricky známy Windows Poznámkový blok. Uloží dokument v UTF-8, ale aj tak pridá podpis (tri bajty navyše) na jeho začiatok. Okrem toho budú tieto bajty vždy rovnaké - čítajte kód v priamom poradí. Ale na serveroch môže kvôli tejto maličkosti nastať problém - vyjde krakozyabry.

Preto v žiadnom prípade nepoužívajte bežný poznámkový blok Windows na úpravu dokumentov na vašom webe, ak si neželáte vzhľad krakozyabrov. Za najlepšiu a najjednoduchšiu možnosť považujem už spomínaný editor Notepad ++, ktorý nemá prakticky žiadne nevýhody a pozostáva len z výhod.

Keď v programe Notepad++ vyberiete kódovanie, budete mať možnosť previesť text na kódovanie UCS-2, ktoré je vo svojej podstate veľmi blízke štandardu Unicode. Aj v Notepade bude možné kódovať text v ANSI, t.j. vo vzťahu k ruskému jazyku to bude Windows 1251, ktorý sme už trochu popísali vyššie.Odkiaľ pochádza táto informácia?

Je zaregistrovaný v registri vašej operačnej sály systémy Windows- ktoré kódovanie zvoliť v prípade ANSI, ktoré zvoliť v prípade OEM (pre ruský jazyk to bude CP866). Ak do počítača nainštalujete iný predvolený jazyk, tieto kódovania budú nahradené podobnými kódmi z kategórie ANSI alebo OEM pre rovnaký jazyk.

Po uložení dokumentu do programu Poznámkový blok ++ v kódovaní, ktoré potrebujete, alebo otvorení dokumentu z lokality na úpravu, uvidíte jeho názov v pravom dolnom rohu editora:

Aby sa zabránilo krakozyabrov, okrem akcií popísaných vyššie bude užitočné napísať informácie o tomto kódovaní do jeho hlavičky zdrojového kódu všetkých stránok lokality, aby nedošlo k zámene na serveri alebo lokálnom hostiteľovi.

Vo všeobecnosti sa vo všetkých značkovacích jazykoch hypertextu okrem Html používa špeciálna xml deklarácia, ktorá špecifikuje kódovanie textu.

Pred analýzou kódu prehliadač vie, ktorá verzia sa používa a ako presne sa majú interpretovať kódy znakov daného jazyka. Čo je však pozoruhodné, ak dokument uložíte v predvolenom kóde unicode, potom je možné túto xml deklaráciu vynechať (kódovanie sa bude považovať za UTF-8, ak neexistuje žiadny kusovník alebo UTF-16, ak existuje kusovník).

V prípade dokladu HTML jazyk používa sa na špecifikáciu kódovania Meta prvok, ktorý je napísaný medzi úvodnou a záverečnou značkou Head:

... ...

Tento záznam je úplne odlišný od záznamu prijatého v , ale je plne v súlade s novým štandardom Html 5, ktorý sa pomaly zavádza, a každý, kto ho použije, ho úplne správne pochopí. tento moment prehliadačov.

Teoreticky prvok Meta s kódovaním html dokument bolo by lepšie dať čo najvyššie v hlavičke dokumentu tak, že v čase stretnutia v texte prvého znaku nie zo základnej ANSI (ktorý bude vždy správne a v akejkoľvek obmene prečítaný), by prehliadač už mal mať informácie o tom, ako interpretovať kódy týchto znakov.

Veľa šťastia! Uvidíme sa čoskoro na stránkach blogu

Možno vás bude zaujímať

Čo URL adresa Aký je rozdiel medzi absolútnymi a relatívnymi odkazmi na stránku
OpenServer - moderný lokálny server a príklad jeho použitia na inštalácie WordPress na počítači
Čo je to Chmod, aké oprávnenia prideliť súborom a priečinkom (777, 755, 666) a ako to urobiť cez PHP
Vyhľadávanie Yandex na webe a v internetovom obchode

Pri pokuse o konfiguráciu tejto alebo tej funkcie internetu sa každý používateľ musel stretnúť s takým konceptom ako "Unicode". Ak chcete zistiť, čo tento pojem znamená, prečítajte si tento článok do konca.

"Unicode": definícia

Termín „Unicode“ dnes označuje štandard kódovania znakov. Tento štandard bola navrhnutá v roku 1991 neziskovou organizáciou Unicode Inc. Štandard Unicode bol navrhnutý tak, aby kombinoval veľké množstvo rôznych znakov v jednom dokumente. Stránka vytvorená na základe takéhoto kódovania môže obsahovať hieroglyfy, písmená a matematické symboly. V tomto kódovaní sa všetky znaky zobrazujú bez problémov.

"Unicode": dôvody pre vytvorenie

Dávno pred príchodom systému Unicode sa kódovania vyberali na základe preferencií autora dokumentu. Z tohto dôvodu bolo na prečítanie jedného dokumentu často potrebné použiť rôzne tabuľky. To sa však muselo urobiť niekoľkokrát. Bežným používateľom to výrazne komplikuje život. Ako už bolo spomenuté, v roku 1991, na vyriešenie tohto problému, nezisková organizácia Unicode Inc. navrhol použiť nový typ kódovania informácií. Tento typ kódovanie bolo vytvorené s cieľom kombinovať širokú škálu štandardov. Kódovanie Unicode nám umožnilo dosiahnuť nemožné: vytvoriť nástroj, ktorý podporuje obrovské množstvo znakov. Výsledok prekonal očakávania: získali sa dokumenty, ktoré mohli súčasne obsahovať ruský aj anglický text, ako aj matematické výrazy a latinčinu. Pred stvorením jednotný systém vývojári kódovania museli vyriešiť množstvo problémov vyplývajúcich z existencie obrovského množstva štandardov, ktoré už existovali na tento moment. Najbežnejšími z týchto problémov boli obmedzenia znakovej sady, elfské skripty, duplikácia fontov a problém s prevodom rôznych kódovaní.

"Unicode": odbočka do histórie

Predstavte si nasledujúci obrázok: na dvore 80. rokov sa výpočtová technika ešte tak nerozšírila a vyzerá inak ako dnes. Každý operačný systém je svojim spôsobom jedinečný a nadšencami upravený pre určité špecifické potreby. V dôsledku toho potreba výmeny informácií viedla k ďalším zlepšeniam. Pri pokuse o čítanie dokumentu vytvoreného v inom operačnom systéme sa na obrazovke zvyčajne zobrazovali zvláštne znakové sady. To si vyžadovalo ďalšiu prácu s kódovaním, ktoré nebolo vždy možné rýchlo dokončiť. Vybavenie potrebného dokumentu trvalo niekedy aj niekoľko mesiacov. Používatelia, ktorí si často musia vymieňať informácie, si pre seba začali vytvárať špeciálne konverzné tabuľky. Práca s takýmito tabuľkami odhalila jednu zaujímavú vlastnosť: takéto tabuľky je potrebné vytvárať súčasne v dvoch smeroch. Stroj nemôže vykonávať banálnu inverziu výpočtov. Pre to je zdrojový súbor zapísaný v pravom stĺpci a výsledok je zapísaný v ľavom. Naopak, nemožno ich preskupovať. Ak potrebujete v dokumente použiť nejaké špeciálne znaky, musíte ich najskôr pridať a potom vysvetliť inému používateľovi, čo s nimi treba urobiť, aby sa nezmenili na „praskliny“. Za zváženie tiež stojí, že každé kódovanie si muselo vyvinúť vlastné písma. To viedlo k vytvoreniu obrovského množstva duplikátov v operačnom systéme. Napríklad na jednej stránke mohol používateľ vidieť tucet fontov identických so štandardným Times New Roman, ale označených UCS-2, UTF-16, UTF-8, ANSI. Preto je potrebné vyvinúť univerzálny štandard.

"Unicode": tvorcovia

Začiatok histórie vytvorenia „Unicode“ možno pripísať roku 1987. Vtedy Joe Becker z Xeroxu spolu s Markom Davisom a Lee Collinsom z Apple začali s výskumom praktického vývoja univerzálneho kódovania. V roku 1988 Joe Becker publikoval plán pre medzinárodné viacjazyčné kódovanie. O niekoľko mesiacov neskôr bola rozšírená fungujúca vývojová skupina Unicode. Zahŕňali odborníkov ako Glenn Wright zo Sun Microsystems, Mike Kernegan a Ken Whistler z RLG. To umožnilo dokončiť prácu na predbežnom vytvorení jednotného kódovacieho štandardu.

"Unicode": všeobecný popis

Unicode je založený na všeobecný pojem symbol. Táto definícia sa chápe ako abstraktný jav, ktorý existuje vo forme písma, realizovaného prostredníctvom grafém. V Unicode je každému znaku priradený jedinečný kód, ktorý patrí do jedného alebo druhého bloku normy. Takže napríklad graféma "B" je prítomná v angličtine aj ruštine, ale zodpovedá dvom rôznym znakom. Tieto znaky je možné previesť aj na malé písmená. To znamená, že každý z týchto symbolov je opísaný kľúčom, množinou vlastností a názvom.

"Unicode": výhody

Unicode sa od ostatných moderných kódovacích systémov líši obrovskou zásobou znakov na „šifrovanie“ rôznych znakov. Ide o to, že predchádzajúce kódovania mali iba 8 bitov. To znamená, že podporovali iba 28 znakov. Nový vývoj mal 216 postáv, čo bol veľký krok vpred. Tak bolo možné zakódovať takmer všetky existujúce abecedy. Potreba používať prevodné tabuľky s príchodom „Unicode“ zmizla. Existencia jediného štandardu jednoducho znížila ich užitočnosť na nulu. V rovnakom čase zmizli aj „kryakozyabry“. Vznik nového štandardu znemožnil ich existenciu. Odpadla aj potreba vytvárať duplicitné fonty.

"Unicode": vývoj

Napriek tomu, že pokrok sa nezastaví, kódovanie Unicode si naďalej drží vedúce postavenie vo svete. Bolo to možné najmä vďaka tomu, že sa to stalo ľahko implementovateľným a široko používaným. Netreba však predpokladať, že dnes sa používa rovnaké kódovanie Unicode ako pred 25 rokmi. Dnes sa používa verzia 5.x.x. Počet zakódovaných znakov sa zvýšil na 231. Od svojho vzniku až po príchod verzie 2.0.0 kódovanie Unicode takmer zdvojnásobilo počet znakov, ktoré obsahuje. V nasledujúcich rokoch tento rast príležitostí pokračoval. V čase, keď sa objavila verzia 4.0.0, bolo potrebné zvýšiť samotný štandard. V dôsledku toho kódovanie Unicode nadobudlo podobu, v akej ho poznáme dnes.

Čo je ešte užitočné v Unicode? Okrem obrovského, neustále rastúceho počtu znakov má kódovanie Unicode jednu celkom užitočnú vlastnosť. Toto je normalizácia. Kódovanie neplytvá počítačovými zdrojmi na pravidelnú kontrolu rovnakého znaku, ktorý môže mať podobný pravopis v rôznych abecedách. Na tento účel sa používa špeciálny algoritmus, ktorý umožňuje vybrať podobné znaky oddelene v stĺpci a pristupovať k nim namiesto toho, aby sa zakaždým kontrolovali všetky informácie. Celkovo boli vyvinuté a implementované štyri takéto algoritmy. Transformácia v každom z nich sa uskutočňuje podľa určitého princípu, ktorý sa líši od ostatných.

Každý používateľ internetu, v snahe nakonfigurovať jednu alebo druhú z jeho funkcií, aspoň raz videl na displeji napísané slovo „Unicode“. Čo to je, sa dozviete čítaním tohto článku.

Definícia

Unicode je štandard kódovania znakov. Navrhla to nezisková organizácia Unicode Inc. v roku 1991. Štandard bol vyvinutý s cieľom skombinovať čo najviac rôznych typov znakov v jednom dokumente. Stránka založená na nej môže obsahovať písmená a hieroglyfy z rôznych jazykov (od ruštiny po kórejčinu) a matematické symboly. V tomto prípade sa všetky znaky v tomto kódovaní zobrazia bez problémov.

Dôvody pre vznik

Kedysi, dávno pred príchodom jednotného systému Unicode, sa kódovanie vyberalo na základe preferencií autora dokumentu. Z tohto dôvodu nebolo nezvyčajné čítať jeden dokument pomocou rôzne tabuľky. Niekedy to bolo treba urobiť viackrát, čo bežnému používateľovi výrazne skomplikovalo život. Ako už bolo spomenuté, riešenie tohto problému navrhla v roku 1991 nezisková organizácia Unicode Inc., ktorá navrhla nový typ kódovania znakov. Jeho zámerom bolo zjednotiť zastarané a rôznorodé normy. „Unicode“ je kódovanie, ktoré umožnilo dosiahnuť v tej dobe nemysliteľné: vytvoriť nástroj, ktorý podporuje obrovské množstvo znakov. Výsledok prekonal mnohé očakávania – objavili sa dokumenty, ktoré súčasne obsahovali anglický aj ruský text, latinské a matematické výrazy.

Vytvoreniu jednotného kódovania však predchádzala potreba vyriešiť množstvo problémov, ktoré vznikli v dôsledku obrovskej rozmanitosti štandardov, ktoré už v tom čase existovali. Najbežnejšie z nich:

  • elfské písmená alebo „krakozyabry“;
  • obmedzený súbor znakov;
  • problém s konverziou kódovania;
  • duplicitné písma.

Malý historický exkurz

Predstavte si, že je to v 80. rokoch. Počítačová technológia ešte nie je taký bežný a vyzerá inak ako dnes. V tom čase je každý OS svojim spôsobom jedinečný a každý nadšenec si ho upravuje pre špecifické potreby. Potreba zdieľať informácie sa mení na ďalšie spresnenie všetkého na svete. Pokus o prečítanie dokumentu vytvoreného pod iným OS často zobrazuje na obrazovke nezrozumiteľnú sadu znakov a začínajú hry s kódovaním. Nie je to vždy možné urobiť rýchlo a niekedy sa potrebný dokument dá otvoriť za šesť mesiacov alebo dokonca neskôr. Ľudia, ktorí si vymieňajú informácie, si často vytvárajú konverzné tabuľky. A práca na nich odhaľuje zaujímavý detail: musíte ich vytvoriť v dvoch smeroch: „od môjho k vášmu“ a naopak. Stroj nemôže urobiť banálnu inverziu výpočtov, pretože zdroj je v pravom stĺpci a výsledok je v ľavom, ale nie naopak. Ak bolo potrebné v dokumente použiť nejaké špeciálne znaky, treba ich najskôr doplniť a potom partnerovi aj vysvetliť, čo musí urobiť, aby sa z týchto znakov „nezbláznili“. A nezabúdajme, že pre každé kódovanie sme museli vyvinúť alebo implementovať vlastné fonty, čo viedlo k vytvoreniu obrovského množstva duplikátov v OS.

Predstavte si tiež, že na stránke fontov uvidíte 10 kusov rovnakých Times New Roman s malými značkami: pre UTF-8, UTF-16, ANSI, UCS-2. Teraz už chápete, že vývoj univerzálneho štandardu bol naliehavou potrebou?

"Otcovia tvorcovia"

Počiatky Unicode možno vystopovať do roku 1987, kedy Joe Becker zo Xeroxu spolu s Lee Collinsom a Markom Davisom z Apple začali skúmať praktické vytvorenie univerzálnej znakovej sady. V auguste 1988 zverejnil Joe Becker návrh 16-bitového medzinárodného viacjazyčného kódovacieho systému.

Po pár mesiacoch pracovná skupina Unicode bol rozšírený o Kena Whistlera a Mikea Kernegana z RLG, Glenna Wrighta zo Sun Microsystems a niekoľkých ďalších, čím sa dokončili prípravné práce na jedinom štandarde kódovania.

všeobecný popis

Unicode je založený na koncepte znaku. Táto definícia sa vzťahuje na abstraktný jav, ktorý existuje v špecifickom type písma a je realizovaný prostredníctvom grafém (jeho „portrétov“). Každý znak je v „Unicode“ špecifikovaný jedinečným kódom patriacim do konkrétneho bloku normy. Napríklad graféma B existuje v anglickej aj ruskej abecede, ale v Unicode má 2 rôzne znaky. Aplikuje sa na ne transformácia, t. j. každý z nich je opísaný databázovým kľúčom, sadou vlastností a celým menom.

Výhody Unicode

Od ostatných súčasníkov sa kódovanie Unicode odlišovalo obrovskou zásobou znakov na „šifrovanie“ znakov. Faktom je, že jeho predchodcovia mali 8 bitov, to znamená, že podporovali 28 znakov, ale nový vývoj už mal 216 postáv, čo bol obrovský krok vpred. To umožnilo zakódovať takmer všetky existujúce a bežné abecedy.

S príchodom „Unicode“ nie je potrebné používať konverzné tabuľky: ako jednotný štandard jednoducho negoval ich potrebu. Rovnakým spôsobom „crakozyabry“ upadli do zabudnutia – jediný štandard ich znemožnil a zároveň eliminoval potrebu vytvárať duplicitné fonty.

Vývoj Unicode

Pokrok samozrejme nestojí a od prvej prezentácie ubehlo 25 rokov. Kódovanie Unicode si však vo svete tvrdohlavo drží svoju pozíciu. V mnohých ohľadoch sa to stalo možným vďaka tomu, že sa to stalo ľahko implementovaným a rozšíreným, čo uznali vývojári proprietárneho (plateného) a open source softvéru.

Zároveň by sme nemali predpokladať, že dnes máme k dispozícii rovnaké kódovanie Unicode ako pred štvrťstoročím. Momentálne sa jeho verzia zmenila na 5.x.x a počet kódovaných znakov sa zvýšil na 231. Upustilo sa od možnosti používať väčšiu zásobu znakov, aby sa zachovala podpora pre Unicode-16 (kódovanie, kde ich maximálny počet bol obmedzený na 216). Od svojho počiatku až do verzie 2.0.0 "Štandard Unicode" zvýšil počet znakov, ktoré sú v ňom zahrnuté, takmer 2-krát. Rast príležitostí pokračoval aj v nasledujúcich rokoch. Od verzie 4.0.0 už bolo potrebné zvýšiť samotný štandard, čo sa aj podarilo. Vďaka tomu získal „Unicode“ podobu, v akej ho poznáme dnes.

Čo je ešte v Unicode?

Okrem obrovského, neustále sa dopĺňajúceho množstva postáv má ešte jednu užitočnú vlastnosť. Ide o takzvanú normalizáciu. Namiesto posúvania celého dokumentu znak po znaku a nahrádzania zodpovedajúcich ikon z vyhľadávacej tabuľky sa používa jeden z existujúcich normalizačných algoritmov. o čom to hovoríme?

Namiesto plytvania počítačovými zdrojmi na pravidelnú kontrolu rovnakého znaku, ktorý môže byť podobný v rôznych abecedách, sa používa špeciálny algoritmus. Umožňuje vám vyňať podobné znaky v samostatnom stĺpci substitučnej tabuľky a už sa na ne odvolávať a nie znova a znova kontrolovať všetky údaje.

Boli vyvinuté a implementované štyri takéto algoritmy. V každom z nich prebieha premena podľa striktne definovaného princípu, ktorý sa líši od ostatných, preto nie je možné ani jeden označiť za najúčinnejší. Každý bol vyvinutý pre špecifické potreby, bol implementovaný a úspešne používaný.

Distribúcia normy

Vo svojej 25-ročnej histórii je Unicode pravdepodobne najpoužívanejším kódovaním na svete. Tomuto štandardu sú prispôsobené aj programy a webové stránky. O šírke aplikácie môže hovoriť skutočnosť, že Unicode dnes používa viac ako 60% internetových zdrojov.

Teraz viete, kedy sa objavil štandard Unicode. Čo to je, tiež viete a budete môcť oceniť plný význam vynálezu, ktorý vytvorila skupina špecialistov Unicode Inc. pred viac ako 25 rokmi.

Táto stránka vyžaduje na správne fungovanie JavaScript. Povoľte JavaScript v nastaveniach prehliadača.

Tabuľka znakov Unicode

ukázať všetko
Rozsah: 0000-001F: C0 riadiace znaky 0020-007F: Základná latinka 0080-009F: C1 riadiace znaky 00A0-00FF: Latinka-1 Ďalšie znaky 0100-017F: Latinka Extended-A 0180-024F: Latinka 0250-B : Rozšírená medzinárodná fonetická abeceda 02B0-02FF: Nekombinovateľné rozšírené modifikačné znaky 0300-036F: Kombinovateľné 0370-03FF: Grécke a koptské abecedy 0400-04FF: Cyrilika 0500-052F: Ďalšie znaky cyriliky 0505 0530 Armenia -05 diakritika : Hebrejčina 0600-06FF: Arabčina 0700-074F: Sýrčina 0750-077F: Ďalšia arabčina 0780-07BF: Tana (Maldivsko) 07C0-07FF: Nko 0800-083F: Samaritánčina 0840-08009009D -097F: Devanagari 0980-09FF: Bengálčina 0A00-0A7F: Gurmukhi 0A80-0AFF: Gujarati 0B00-0B7F: Oriya 0B80-0BFF: Tamil 0C00-0C7F: Telugčina 0C80-0CFF: kannadčina 0D00-0D7F: malajálamčina 0D80-0DFF: sinhálčina 0E00-0E7F: thajčina 0E80-0EFF: laoština 0F00-0FFF: tibetčina 1000-109F: Mjanmarsko-101100 gruzínčina: hang: Mjanmarsko-101110A -137F: Etiópsky slabikár 1380-139F: Etiópske doplnkové znaky 13A0-13FF: Čerokézske písmo 1400-167F: Kanadské slabičné písmo 1680-169F: Ogham 16A0-16FF: Runicové písmo171F: HanoBa07in171F) HanoBa07in171F) Hano470 171F HanoBa07in) 171F -175F: Buhid 1760-177F: Tagbanwa 1780-17FF: Khmérske písmo 1800-18AF: Staré mongolské písmo 18B0-18FF: Rozšírené kanadské slabičné písmo 1900-194F: Písmo Limbu 1950-19alDF: Nové písmo Taiscript: Lyskript 19E0-19FF: Khmérske znaky 1A00-1A1F: Bugi písmo (Lontara) 1A20-1AAF: Staré písmo Tai Ly (Tai Tham) 1B00-1B7F: Balijské písmo 1B80-1 BBF: sundské písmo 1BC0-1BFF: batakovské písmo 1C00-1C4F: lepcha písmo (Rong) 1C50-1C7F: písmo Ol Chiki 1CD0-1CFF: védske znaky 1D00-1D7F: fonetické rozšírenia 1D80-1DBF: Ďalšie telefónne rozšírenia-1DFF: Ďalšie telefónne čísla kombinovateľná diakritika 1E00-1EFF: Doplnok rozšírenej latinky 1F00-1FFF: Rozšírený grécky znak 2000-206F: Interpunkčné znamienka 2070-209F: Horné a dolné indexy 20A0-20CF: Symboly mien 20D0-20FF: Kombinované 20D0-20FF: Combin10 Diacritic1 znaky 2150-218F: Číselné tvary 2190-21FF: Šípky 2200-22FF: Matematické operátory 2300-23FF: Rôzne technické znaky 2400-243F: Ikony riadiaceho kódu 2440-245F: OCR znaky a vložené číslice 2460-:252F Symboly okrajov 2580-259F: Symboly výplní 25A0-25FF: Geometrické tvary 2600-26FF: Rôzne symboly 27 00-27BF: Dingbats 27C0-27EF: Rôzne matematické symboly-A 27F0-27FF: Extra šípky-A 2800-28FF: Braillovo písmo 2900-297F: Extra šípky-B 2980-29FF: Rôzne-0FF Mimoriadne matematické2A0 Operátory 2B00-2BFF: Rôzne symboly a šípky 2C00-2C5F: hlaholika 1AB0-1AFF: kombinovaná diakritika (rozšírenie A) 1CC0-1CCF: rozšírená sundská znaková sada A9E0-A9FF: mjanmarské písmo (rozšírenie Meanmarské písmo AAEten-AAFF) Sada AB30-AB8F: Rozšírená latinka-E AB30-AB6F: Varang-Kshiti AB90-ABBF: Písmo Beria Zaghawa 2C60-2C7F: Rozšírená latinka-C 2C80-2CFF: Koptské písmo 2D00-2D2F: Dodatočné302 gruzínske písmo8Dfin7D -2DDF: Ethiopic Extended Character Set 2DE0-2DFF: Cyrillic Extended-A 2E00-2E7F: Dodatočné znaky interpunkcia 2E80-2EFF: Ďalšie znaky CJK 2F00-2FDF: klávesy znakov Kangxi 2FF0-2FFF: znaky popisu znakov 3000-303F: znaky CJK a interpunkcia 3040-309F: Hiragana 30A0-30FF: Katakana 31foyin310-30 318F: Chamo kombinované s Hangul 3190-319F: Znaky použité v kambune 31A0-31BF: Bopomofo rozšírená sada znakov 31C0-31EF: CJK funkcie 31F0-31FF: Katakana fonetické rozšírenia 3200-32FF: Vnorené písmená CJ3KFF a mesiace CJK33K Známky 3400-4DBF: Zjednotené znaky CJK (rozšírenie A) 4DC0-4DFF: Hexagramy I-ťing 4E00-9FFF: Zjednotené znaky CJC A000-A48F: Slabiky a A490-A4CF: Radikály a A4D0yl V3ubetA4FF: S4D0yl V055A4FF A640-A69F: Rozšírená azbuka-B A6A0-A6FF: Bamumské písmo A700-A71F: Symboly zmeny tónu A720-A7FF: Rozšírená latinka-D A800-A82F: Siloti Nagri A830-A83F: Indické číselné symboly- A87F štvorec A840 Phagba Lama A880-A8DF: Saurashtra A8E0-A8FF: Devanagari Extended Character A900-A92F: Kayah Li A930-A95F: Rejang A960-A97F: Hangul (rozšírenie A) A980-A9DF: jávsky:FA00-AA6AA5script (Rozšírenie A) AA80-AADF: Písmo Tai Viet AB00-AB2F: Etiópske písmo (Rozšírenie A) ABC0-ABFF: Meitei/Manipuri AC00-D7AF: Hangulské slabiky D800-DB7F: Horná časť náhradných párov DB80 -DBFF: Horná časť súkromnej použite náhradné páry DC00-DFFF: Spodná časť náhradných párov E000-F8FF: Oblasť súkromného použitia F900-FAFF: Znaky kompatibilné s CJK FB00-FB4F: Abecedné formy zobrazenia FB50-FDCF: Formuláre zobrazenia arabského písmena-A FDF0-FDFF: Arabčina-A Formuláre reprezentácií FE00-FE0F: Výber variantov štýlu FE10-FE1F: Vertikálne formuláre FE20-FE2F: Kombinovateľné polovice znakov FE30-FE4F: Formuláre kompatibility CJC FE50-FE6F: Varianty malých rozmerov FE70-FE FF: Arabské písmená-B formuláre FF00-FFEF: polovičné a plné formuláre FFF0-FFFF: špeciálne znaky

  • Čo je Unicode?

    Unicode(Angličtina) Unicode) je univerzálny štandard kódovania znakov, ktorý vám umožňuje poskytovať znaky zo všetkých jazykov sveta.

    Na rozdiel od ASCII je jeden znak zakódovaný ako dva bajty, čo umožňuje použitie 65 536 postavy, proti 256 .

    Ako viete, jeden bajt je celé číslo od nula predtým 255 . Na druhej strane, bajt pozostáva z osem bity, ktoré ukladajú číselné hodnoty v binárnej forme, kde každá ďalšia jednotka aktuálneho bitu je dvojnásobkom hodnoty predchádzajúceho bitu. Do dvoch bajtov teda možno uložiť číslo z nula predtým 65 535 , čo umožňuje používať 65 536 znakov (nula + 65 535 , nula je tiež číslo, nie je to nič).

    Znaky Unicode sú rozdelené do sekcií. najprv 128 tabuľka opakovania znakov ASCII.

    Rodina kódovania je zodpovedná za zobrazovanie znakov. Unicode (Transformačný formát Unicode - UTF). Najznámejšie a najpoužívanejšie kódovanie je UTF-8.

  • Ako používať stôl?

    Symboly sú prezentované v 16 kusoch na riadok. Zhora môžete vidieť hexadecimálne číslo od 0 predtým 16 . Vľavo podobné čísla v hexadecimálnom tvare z 0 predtým FFF.
    Spojením čísla vľavo s číslom v hornej časti zistíte kód znaku. Napríklad: anglický list F nachádza na linke 004 , v stĺpci 6 : 004 + 6 = kód znaku 0046 .

    Môžete však jednoducho prejsť myšou špecifický symbol v tabuľke zistíte kód znaku. Alebo kliknite na symbol a skopírujte ho, alebo jeho kód v jednom z formátov.

    Do vyhľadávacieho poľa môžete zadať kľúčové slová vyhľadávania, napríklad: šípky, slnko, srdce. Alebo môžete zadať kód znaku v akomkoľvek formáte, napríklad: 1123, 04BC, چ. Alebo samotný symbol, ak chcete poznať kód symbolu.

    Hľadať podľa Kľúčové slová je momentálne vo vývoji, takže nemusí priniesť výsledky. Ale mnoho populárnych symbolov už možno nájsť.

Verte tomu alebo nie, v prehliadači je zabudovaný obrazový formát. Tento formát umožňuje sťahovanie obrázkov skôr, ako sú potrebné, poskytuje vykreslenie obrázku na bežnom resp sietnicové obrazovky a umožňuje vám pridať css obrázky. Dobre, nie je to celkom pravda. Toto nie je obrazový formát, aj keď všetko ostatné je stále platné. Pomocou neho môžete vytvárať ikony nezávislé od rozlíšenia, ktorých načítanie nezaberie veľa času a dajú sa s nimi štýlovať pomocou CSS.

Čo je Unicode?

Unicode je schopnosť správne zobrazovať písmená a interpunkciu z rôznych jazykov na tej istej stránke. Je to neuveriteľne užitočné: používatelia budú môcť s vašou stránkou pracovať na celom svete a bude ukazovať, čo chcete – môže to byť francúzština s diakritikou alebo kanji .

Unicode sa naďalej vyvíja: teraz je aktuálna verzia 8.0, ktorá má viac ako 120 tisíc znakov (v pôvodnom článku zverejnenom začiatkom roka 2014 išlo o verziu 6.3 a 110 tisíc znakov).

Okrem písmen a číslic sú v Unicode aj ďalšie znaky a ikony. AT najnovšie verzie tieto zahŕňali emoji, ktoré môžete vidieť v aplikácii iOS messenger.

HTML stránky sú vytvorené zo sekvencie znakov Unicode a pri odosielaní cez sieť sa skonvertujú na bajty. Každé písmeno a každý symbol akéhokoľvek jazyka má svoj vlastný jedinečný kód a je zakódovaný pri ukladaní súboru.

Pri použití systému kódovania UTF-8 môžete priamo vkladať znaky Unicode do textu, ale tiež môžete do textu pridať znaky Unicode zadaním číselného symbolického odkazu. Toto je napríklad symbol srdca a tento symbol môžete zobraziť jednoduchým pridaním kódu do označenia.

Tento číselný odkaz možno zadať v desiatkovom aj hexadecimálnom formáte. Desatinný formát vyžaduje pridanie písmena x na začiatok, zadanie bude mať rovnaké srdce ( ) ako predchádzajúca možnosť. (2665 je hexadecimálna verzia 9829).

Ak pridávate znak Unicode pomocou CSS, môžete použiť iba hexadecimálne hodnoty.

Niektoré z bežnejšie používaných znakov Unicode majú namiesto číselných kódov lepšie zapamätateľné textové názvy alebo skratky, ako napríklad ampersand (& - &). Takéto postavy sú tzv mnemotechnické pomôcky v HTML, ich úplný zoznam je na Wikipédii.

Prečo by ste mali používať Unicode?

Dobrá otázka, tu je niekoľko dôvodov:

  1. Používať správne znaky z rôznych jazykov.
  2. Ak chcete nahradiť ikony.
  3. Nahradenie ikon pripojených cez @font-face .
  4. Na nastavenie tried CSS

Správne znaky

Prvý z dôvodov si nevyžaduje žiadne dodatočné opatrenia. Ak je HTML uložené vo formáte UTF-8 a jeho kódovanie je prenášané cez sieť ako UTF-8, všetko by malo fungovať ako má.

Musieť. Bohužiaľ, nie všetky prehliadače a zariadenia podporujú všetky znaky Unicode rovnakým spôsobom (presnejšie, nie všetky písma podporujú celú znakovú sadu). Napríklad novo pridané emotikony nie sú všade podporované.

Pre podporu UTF-8 v HTML5 pridajte (ak nemáte prístup k nastaveniam servera, mali by ste tiež pridať ). Starý doctype používa ( ).

ikony

Druhým dôvodom, prečo používať Unicode, je mať Vysoké číslo užitočné symboly, ktoré možno použiť ako ikony. Napríklad , ≡ a .

Ich zjavnou výhodou je, že žiadne nepotrebujete ďalšie súbory aby ste ich pridali na stránku, čo znamená, že vaša stránka bude rýchlejšia. Môžete tiež zmeniť ich farbu alebo pridať tieň pomocou CSS. A pridaním prechodov (css prechod) môžete plynulo zmeniť farbu ikony, keď na ňu umiestnite kurzor myši, bez akýchkoľvek ďalších obrázkov.

Povedzme, že chcem na svoju stránku zahrnúť indikátor hodnotenia s hviezdičkami. Môžem to urobiť takto:

★ ★ ★ ☆ ☆

Dostanete nasledujúci výsledok:

Ak však nemáte šťastie, uvidíte niečo takéto:

Rovnaké hodnotenie na BlackBerry 9000

Stáva sa to, ak použité znaky nie sú v písme prehliadača alebo zariadenia (našťastie sú tieto hviezdičky podporované perfektne a staré telefóny Blackberry sú tu jedinou výnimkou).

Ak tam nie je znak Unicode, možno ho nahradiť znakmi od prázdneho štvorca (□) po kosoštvorec s otáznikom (�).

Ako však nájdete znak Unicode, ktorý by mohol byť vhodný na použitie vo vašom návrhu? Môžete si to vyhľadať na stránke, ako je Unicodinator, pohľadom na dostupné postavy, ale existujú aj také najlepšia cesta. - táto skvelá stránka vám umožní nakresliť ikonu, ktorú hľadáte, a potom vám ponúkne zoznam podobných znakov Unicode.

Používanie Unicode s ikonami @font-face

Ak používate ikony, ktoré sú prepojené s externým písmom cez @font-face , znaky Unicode možno použiť ako rezervu. Týmto spôsobom môžete zobraziť podobný znak Unicode na zariadeniach alebo prehliadačoch, kde @font-face nie je podporovaný:

Na ľavej strane sú ikony Font Awesome v prehliadači Chrome a na pravej strane sú náhradné znaky Unicode v Opera Mini.

Mnoho nástrojov na porovnávanie @font-face používa rozsah znakov Unicode z oblasti súkromného použitia. Problém s týmto prístupom je, že ak @font-face nie je podporovaný, kódy znakov sa používateľovi odovzdávajú bez akéhokoľvek významu.

Skvelé na vytváranie sád ikon v @font-face a umožňuje vám vybrať si vhodný znak Unicode ako základ pre ikonu.

Buďte však opatrní – niektoré prehliadače a zariadenia nemajú radi jednotlivé znaky Unicode pri použití s ​​@font-face . Má zmysel skontrolovať podporu znakov Unicode pomocou Unify - táto aplikácia vám pomôže určiť, aké bezpečné je použiť znak v sade ikon @font-face.

Podpora znakov Unicode

Hlavným problémom pri používaní znakov Unicode ako náhrady je slabá podpora v čítačkách obrazovky (niektoré informácie o tom možno opäť nájsť na stránke Unify), preto je dôležité starostlivo vyberať znaky, ktoré používate.

Ak je vaša ikona len dekoratívnym prvkom vedľa textového štítku čitateľného čítačkou obrazovky, nemusíte sa príliš obávať. Ak je však ikona samostatná, oplatí sa pridať skrytý textový štítok, ktorý pomôže používateľom čítačky obrazovky. Aj keď je znak Unicode prečítaný čítačkou obrazovky, existuje šanca, že sa bude veľmi líšiť od zamýšľaného účelu. Napríklad ≡ (≡) ako ikonu hamburgera bude VoiceOver v systéme iOS vnímať ako „identickú“.

Unicode v názvoch tried CSS

Skutočnosť, že Unicode možno použiť v názvoch tried a v štýloch, je známa od roku 2007. Vtedy Jonathan Snook napísal o použití znakov Unicode v pomocných triedach pri rozmiestňovaní zaoblených rohov. Táto myšlienka nebola veľmi rozšírená, ale stojí za to vedieť o možnosti použitia Unicode v názvoch tried (špeciálne znaky alebo cyrilika).

Výber písma

Len málo fontov podporuje celú znakovú sadu Unicode, takže pri výbere fontu nezabudnite skontrolovať znaky, ktoré chcete.

Veľa ikon v Segoe UI Symbol alebo Arial Unicode MS. Tieto fonty sú dostupné na PC aj Mac; Lucida Grande má tiež značné množstvo znakov Unicode. Tieto fonty môžete pridať do deklarácie rodiny fontov, aby ste pre používateľov, ktorí majú tieto fonty nainštalované, vynútili maximálny počet znakov Unicode.

Určenie podpory Unicode

Bolo by veľmi pohodlné mať možnosť skontrolovať prítomnosť konkrétneho znaku Unicode, ale neexistuje žiadny zaručený spôsob, ako to urobiť.

Znaky Unicode môžu byť účinné, ak sú podporované. Napríklad emodži v predmete e-mailu ho odlišuje od ostatných poštová schránka.

Záver

Tento článok obsahuje iba základy Unicode. Dúfam, že to považujete za užitočné a pomôže vám lepšie pochopiť Unicode a efektívne ho používať.

Zoznam odkazov

  • (Generátor sady ikon @font-face založený na Unicode)
  • Shape Catcher (nástroj na rozpoznávanie znakov Unicode)
  • Unicodinator (tabuľka znakov Unicode)
  • Unify (Skontrolujte podporu znakov Unicode v prehliadačoch)
  • Unitools (Kolekcia nástrojov na prácu s Unicode)