Kódování Unicode 2. Předpoklady pro vytvoření a vývoj unicode

Dobrý den, milí čtenáři tohoto blogu. Dnes s vámi budeme hovořit o tom, odkud krakozyabrové pocházejí na webu a v programech, jaká textová kódování existují a která by se měla používat. Podívejme se blíže na historii jejich vývoje, počínaje základním ASCII, i jeho rozšířenými verzemi CP866, KOI8-R, Windows 1251 a konče moderními kódováními konsorcia Unicode UTF 16 a 8.

Někomu se tato informace může zdát nadbytečná, ale víte, kolik otázek dostávám ohledně vylezlých krakozyabrů (nečitelná sada znaků). Nyní budu mít příležitost odkázat všechny na text tohoto článku a nezávisle najít své zárubně. No, připravte se na vstřebání informací a pokuste se sledovat příběh.

ASCII - základní kódování textu pro latinku

Vývoj kódování textů probíhal souběžně s formováním IT průmyslu a za tuto dobu stihly projít poměrně velkým množstvím změn. Historicky vše začalo EBCDIC, které nebylo v ruské výslovnosti spíše eufonické, což umožnilo kódovat písmena latinské abecedy, arabské číslice a interpunkční znaménka s řídicími znaky.

Ale přesto je výchozím bodem pro vývoj moderních textových kódování slavný ASCII(Americký standardní kód pro výměnu informací, který se v ruštině obvykle vyslovuje jako „aski“). Popisuje prvních 128 znaků nejčastěji používaných anglicky mluvícími uživateli – latinská písmena, arabské číslice a interpunkční znaménka.

Dokonce i těchto 128 znaků popsaných v ASCII obsahovalo některé servisní symboly, jako jsou závorky, křížové čáry, hvězdičky atd. Ve skutečnosti je můžete vidět sami:

Právě těchto 128 znaků z původní ASCII verze se stalo standardem a v jakémkoli jiném kódování se s nimi jistě setkáte a v tomto pořadí obstojí.

Faktem ale je, že pomocí jednoho bajtu informací je možné zakódovat ne 128, ale až 256 různých hodnot (dvě mocniny osmi se rovná 256), proto po základní verze Asuka se objevila celá série rozšířené ASCII kódování, do kterého bylo možné kromě 128 základních znaků kódovat i symboly národního kódování (například ruské).

Zde možná stojí za to říci trochu více o číselných systémech, které jsou použity v popisu. Za prvé, jak všichni víte, počítač pracuje pouze s čísly ve dvojkové soustavě, konkrétně s nulami a jedničkami ("Booleovská algebra", pokud někdo chodil na vysokou nebo do školy). , z nichž každá má mocninu 2, počínaje nulou a až dvě v sedmé:

Není těžké pochopit, že možných kombinací nul a jedniček v takové konstrukci může být pouze 256. Převést číslo z dvojkové soustavy do desítkové je celkem jednoduché. Stačí sečíst všechny mocniny dvou, nad kterými jsou jedničky.

V našem příkladu je to 1 (2 na nulovou mocninu) plus 8 (dvě na 3), plus 32 (dvě na pátou mocninu), plus 64 (na šestou), plus 128 (na sedmou). Celkem dostane 233 palců desítková soustava zúčtování. Jak vidíte, vše je velmi jednoduché.

Ale když se podíváte pozorně na tabulku se znaky ASCII, uvidíte, že jsou zastoupeny v hexadecimálním kódování. Například hvězdička odpovídá hexadecimálnímu číslu 2A v Asuce. Asi to víš hexadecimální soustava Kromě arabských číslic se v číslech používají také latinská písmena od A (znamená deset) do F (znamená patnáct).

No, pro překlad binární číslo do šestnáctkové soustavy uchýlit se k následující jednoduché a intuitivní metodě. Každý bajt informace je rozdělen do dvou částí po čtyřech bitech, jak je znázorněno na výše uvedeném snímku obrazovky. Že. v každém půlbajtu lze binárně zakódovat pouze šestnáct hodnot (dvě až čtvrtá mocnina), které lze snadno reprezentovat jako hexadecimální číslo.

Navíc v levé polovině bajtu bude nutné znovu počítat stupně počínaje nulou, a ne jak je znázorněno na snímku obrazovky. Ve výsledku některými jednoduchými výpočty dojdeme k tomu, že na snímku obrazovky je zakódováno číslo E9. Doufám, že vám průběh mého uvažování a řešení tohoto rébusu bylo jasné. Nyní pojďme pokračovat, vlastně mluvit o kódování textu.

Rozšířené verze Asuka - kódování CP866 a KOI8-R s pseudografikou

Začali jsme tedy mluvit o ASCII, které bylo jakoby výchozím bodem pro vývoj všech moderních kódování (Windows 1251, Unicode, UTF 8).

Zpočátku obsahoval pouze 128 znaků latinské abecedy, arabské číslice a něco jiného, ​​ale v rozšířené verzi bylo možné použít všech 256 hodnot, které lze zakódovat do jednoho bajtu informací. Tito. bylo možné přidat do Aski symboly písmen vašeho jazyka.

Zde bude nutné ještě jednou odbočit, abychom si ujasnili - proč vůbec potřebujeme kódování texty a proč je to tak důležité. Symboly na obrazovce vašeho počítače jsou tvořeny na základě dvou věcí – sady vektorových forem (reprezentací) všech druhů znaků (jsou v co souborech) a kódu, který vám umožní vytáhnout z této sady vektorových forem (font soubor) přesně ten symbol, který bude potřeba vložit na správné místo.

Je jasné, že za vektorové formy jsou zodpovědné samotné fonty, ale za kódování je zodpovědný operační systém a programy v něm použité. Tito. jakýkoli text ve vašem počítači bude sadou bajtů, z nichž každý zakóduje jeden jediný znak právě tohoto textu.

Program, který zobrazuje tento text na obrazovce (textový editor, prohlížeč atd.), při analýze kódu načte kódování dalšího znaku a hledá odpovídající vektorovou formu v požadovaný soubor písmo, které je připojeno k zobrazení tohoto textového dokumentu. Všechno je jednoduché a banální.

To znamená, že pro zakódování jakéhokoli znaku, který potřebujeme (například z národní abecedy), musí být splněny dvě podmínky - vektorová podoba tohoto znaku musí být v použitém fontu a tento znak by mohl být zakódován v rozšířených ASCII kódováních v jeden bajt. Proto je takových možností celá řada. Existuje několik druhů rozšířené Asuka pouze pro kódování znaků ruského jazyka.

Například se původně objevil CP866, ve kterém bylo možné používat znaky ruské abecedy a jednalo se o rozšířenou verzi ASCII.

Tito. jeho horní část se zcela shodovala se základní verzí Asuka (128 latinských znaků, čísel a jakýchkoli jiných svinstev), která je uvedena na snímku nahoře, ale již spodní část tabulky s kódováním CP866 měla pohled naznačený na snímku těsně pod a umožnilo kódovat dalších 128 znaků (ruská písmena a všechny druhy pseudografiky):

Vidíte, v pravém sloupci začínají čísla 8, protože čísla 0 až 7 odkazují na základní část ASCII (viz první snímek obrazovky). Že. ruské písmeno "M" v CP866 bude mít kód 9C (nachází se na průsečíku odpovídajícího řádku s 9 a sloupce s číslem C v hexadecimálním zápisu), který může být zapsán v jednom byte informace, a pokud existuje vhodné písmo s ruskými znaky, toto písmeno se bez problémů zobrazí v textu.

Kde se tato částka vzala? pseudografika v CP866? Jde o to, že toto kódování pro ruský text bylo vyvinuto ještě v těch chlupatých letech, kdy ještě neexistovalo takové rozšíření grafických operačních systémů jako nyní. A v Dosu a podobných textových operačních systémech pseudografika umožnila nějak zpestřit design textů a proto se jí CP866 a všichni jeho další kolegové z kategorie rozšířených verzí Asuka jen tak hemží.

CP866 byl distribuován společností IBM, ale kromě toho byla vyvinuta řada kódování pro ruské znaky, například tento typ (rozšířené ASCII) lze připsat KOI8-R:

Princip jeho fungování zůstává stejný jako u o něco dříve popsaného CP866 – každý znak textu je zakódován jedním jediným byte. Snímek obrazovky ukazuje druhou polovinu tabulky KOI8-R od roku první polovina je zcela v souladu se základní Asukou, která je zobrazena na prvním snímku obrazovky v tomto článku.

Mezi rysy kódování KOI8-R lze poznamenat, že ruská písmena v jeho tabulce nejsou v abecedním pořadí, jako například v CP866.

Pokud se podíváte na úplně první snímek obrazovky (základní části, která je součástí všech rozšířených kódování), všimnete si, že v KOI8-R jsou ruská písmena umístěna ve stejných buňkách tabulky jako písmena souhlásky latinské abecedy s nimi z první části tabulky. To bylo provedeno pro pohodlí přechodu z ruských znaků na latinské znaky zahozením pouze jednoho bitu (od dvou do sedmé mocniny nebo 128).

Windows 1251 - moderní verze ASCII a proč krakozyabry vycházejí

Další rozvoj kódování textů souvisel s tím, že grafické operační systémy získávaly na oblibě a potřeba v nich pseudografiku časem vymizela. Výsledkem byla celá skupina, která byla v podstatě stále rozšířenými verzemi Asuky (jeden znak textu je zakódován pouze jedním byte informací), ale již bez použití pseudografických znaků.

Patřily mezi tzv. kódování ANSI, které vyvinul American Standards Institute. V běžné řeči se pro verzi s podporou ruského jazyka stále používal název azbuka. Příklad toho může posloužit.

Od dříve používaných CP866 a KOI8-R se příznivě lišil tím, že místo pseudografických symbolů v něm zaujaly chybějící symboly ruské typografie (kromě přízvuku) a také symboly používané ve slovanských jazycích. blízké ruštině (ukrajinsky, běloruštině atd.)):

Kvůli takovému množství kódování ruského jazyka, výrobcům a výrobcům písem software Neustále mě bolela hlava a vy a já, drazí čtenáři, jsme se často dostali ven z těch notoricky známých krakozyabry když došlo k záměně s verzí použitou v textu.

Velmi často se dostali ven při odesílání a přijímání zpráv přes e-mailem, což vedlo k vytvoření velmi složitých převodních tabulek, které ve skutečnosti nemohly tento problém zásadně vyřešit, a uživatelé korespondence se často vyhýbali notoricky známým krakozyabrům při používání ruských kódování jako CP866, KOI8-R nebo Windows 1251.

Ve skutečnosti byly výsledkem krakozyabry, vylézající ven místo ruského textu zneužít kódování tohoto jazyka který se neshodoval s tím, ve kterém byl zakódován textová zpráva zpočátku.

Řekněme, že pokud se znaky zakódované pomocí CP866 pokusí zobrazit pomocí tabulka kódů Windows 1251, pak vyjdou ty samé krakozyabry (nesmyslná sada znaků), které zcela nahradí text zprávy.

Podobná situace velmi často nastává, když je na fórech nebo blozích text s ruskými znaky omylem uložen ve špatném kódování, které se používá na výchozím webu, nebo v nesprávném. textový editor, který do kódu přidává roubík, který není viditelný pouhým okem.

Nakonec taková situace s množstvím kódování a neustále se objevujícími krakozyabras, které mnohé omrzely, byly předpoklady pro vytvoření nové univerzální variace, která by nahradila všechny stávající a konečně vyřešila základní problém vzhledu nečitelných textů. . Kromě toho zde byl problém jazyků, jako je čínština, kde bylo znaků jazyka mnohem více než 256.

Unicode – Univerzální kódování UTF 8, 16 a 32

Tyto tisíce znaků z jazykové skupiny jihovýchodní Asie nebylo možné popsat v jednom bajtu informací, který byl přidělen pro kódování znaků v rozšířených verzích ASCII. V důsledku toho bylo vytvořeno konsorcium tzv Unicode(Unicode - Unicode Consortium) ve spolupráci s mnoha předními představiteli IT průmyslu (těch, kteří vyrábějí software, kteří kódují hardware, kteří vytvářejí fonty), kteří měli zájem na vzniku univerzálního kódování textu.

První variace vydaná pod záštitou konsorcia Unicode byla UTF 32... Číslo v názvu kódování znamená počet bitů, které jsou použity ke kódování jednoho znaku. 32 bitů jsou 4 bajty informací, které budou potřeba k zakódování jednoho jediného znaku v novém univerzálním kódování UTF.

Výsledkem je, že stejný soubor s textem zakódovaným v rozšířené verzi ASCII a v UTF-32 bude mít v druhém případě velikost (váhu) čtyřikrát větší. To je špatné, ale nyní máme možnost zakódovat počet znaků rovný dvěma na třicetisekundovou mocninu ( miliardy postav, která pokryje jakoukoli skutečně potřebnou hodnotu s kolosální marží).

Mnoho zemí s jazyky evropské skupiny však nepotřebovalo v kódování používat tak velké množství znaků, ale když bylo použito UTF-32, získaly čtyřnásobné zvýšení hmotnosti textových dokumentů za nic, a jako výsledkem je nárůst objemu internetového provozu a objemu uložených dat. To je hodně a nikdo by si takové plýtvání nemohl dovolit.

V důsledku vývoje Unicode, UTF-16, který se ukázal být natolik úspěšný, že byl standardně akceptován jako základní prostor pro všechny námi používané symboly. Ke kódování jednoho znaku používá dva bajty. Pojďme se podívat, jak tento případ vypadá.

PROTI operační systém Windows, můžete postupovat podle cesty "Start" - "Programy" - "Příslušenství" - "Systémové nástroje" - "Mapa symbolů". V důsledku toho se otevře tabulka s vektorovými tvary všech písem nainstalovaných ve vašem systému. Pokud zvolíte " Další parametry»Sada znaků Unicode, pro každé písmo zvlášť uvidíte celý rozsah znaků, které jsou v něm obsaženy.

Mimochodem, kliknutím na kterýkoli z nich se zobrazí jeho dvoubajt kód UTF-16 skládající se ze čtyř hexadecimálních číslic:

Kolik znaků lze zakódovat v UTF-16 s 16 bity? 65536 (dvě mocniny šestnácti) a právě toto číslo bylo v Unicode vzato jako základní prostor. Kromě toho existují způsoby, jak s ním kódovat a asi dva miliony znaků, ale byly omezeny na rozšířený prostor milionu znaků textu.

Ale ani tato úspěšná verze kódování Unicode nepřinesla příliš uspokojení těm, kteří psali např. programy pouze v angličtině, protože po přechodu z rozšířené verze ASCII na UTF-16 se váha dokumentů zdvojnásobila (jedna bajt na jeden znak v Aski a dva bajty na stejný znak v UTP-16).

Právě pro spokojenost všech a všeho v konsorciu Unicode bylo rozhodnuto přijít kódování s proměnnou délkou... Říkali tomu UTF-8. Přes osmičku v názvu má opravdu proměnnou délku, tzn. každý znak v textu lze zakódovat do sekvence od jednoho do šesti bajtů.

V praxi se v UTF-8 používá pouze rozsah od jednoho do čtyř bajtů, protože za čtyřmi bajty kódu si není možné nic ani teoreticky představit. Všechny latinské znaky v něm jsou zakódovány do jednoho bajtu, stejně jako ve starém dobrém ASCII.

Co je pozoruhodné, v případě kódování pouze latinské abecedy i ty programy, které nerozumí Unicode, budou stále číst to, co je kódováno v UTF-8. Tito. základní část Asuka právě přešla do tohoto duchovního dítěte konsorcia Unicode.

Znaky azbuky v UTF-8 jsou kódovány ve dvou bytech a například gruzínské - ve třech bytech. Unicode Consortium po vytvoření UTF 16 a 8 vyřešilo hlavní problém - nyní máme ve fontech je jeden kódový prostor... A nyní je jejich výrobci mohou naplnit pouze vektorovými formami textových symbolů na základě svých silných stránek a schopností. Nyní dokonce v sadách.

Ve výše uvedené "Tabulce znaků" můžete vidět, že různá písma podporují různý počet znaků. Některá písma bohatá na Unicode mohou být velmi těžká. Nyní se však neliší v tom, že jsou vytvořeny pro různá kódování, ale v tom, že výrobce písem vyplnil nebo nevyplnil jediný kódový prostor určitými vektorovými tvary až do konce.

Krakozyabry místo ruských písmen - jak to opravit

Podívejme se nyní, jak se místo textu objeví krakozyabras, nebo jinými slovy, jak se zvolí správné kódování pro ruský text. Ve skutečnosti se nastavuje v programu, ve kterém vytváříte nebo upravujete právě tento text nebo kód pomocí textových fragmentů.

Chcete-li upravit a vytvořit textové soubory Osobně používám podle mého názoru velmi dobrý. Dokáže však zvýraznit syntaxi dobré stovky dalších programovacích a značkovacích jazyků a má také možnost rozšíření pomocí pluginů. Číst podrobná recenze tento úžasný program z uvedeného odkazu.

V horním menu programu Poznámkový blok ++ je položka „Kódování“, kde budete moci převést stávající verzi na verzi, která je na vašem webu standardně používána:

V případě webu na Joomla 1.5 a vyšší, stejně jako v případě blogu na WordPress, aby se zabránilo výskytu trhlin, zvolte možnost UTF 8 bez kusovníku... Co je předpona kusovníku?

Faktem je, že když bylo vyvinuto kódování YUTF-16, z nějakého důvodu se rozhodli připojit k němu něco jako schopnost psát znakový kód, a to jak v přímé sekvenci (například 0A15), tak i v opačném směru (150A) . A aby programy pochopily, v jakém pořadí číst kódy, a byl vynalezen kusovník(Byte Order Mark nebo jinými slovy podpis), což bylo vyjádřeno přidáním tří dalších bajtů na samém začátku dokumentů.

V kódování UTF-8 není v konsorciu Unicode poskytován žádný kusovník, a proto přidání podpisu (tyto nejznámější další tři bajty na začátek dokumentu) jednoduše brání některým programům ve čtení kódu. Proto při ukládání souborů do UTP musíme vždy zvolit možnost bez kusovníku (bez podpisu). Takže postupujete chránit se před vylézt krakozyabrov.

Pozoruhodné je, že některé programy ve Windows toto neumí (neumí uložit text v UTP-8 bez kusovníku), například notoricky známý Windows Notepad. Uloží dokument v UTF-8, ale přesto přidá na začátek podpis (tři bajty navíc). Navíc tyto bajty budou vždy stejné - čtěte kód v přímé sekvenci. Ale na serverech může kvůli této maličkosti nastat problém - vyjde krakozyabry.

Takže v žádném případě nepoužívejte běžný poznámkový blok Windows pro úpravu dokumentů vašeho webu, pokud nechcete vzhled krakozyabrů. Nejlepší a nejjednodušší možností je podle mě již zmíněný editor Notepad ++, který nemá prakticky žádné nevýhody a skládá se pouze z výhod.

V programu Poznámkový blok ++ při výběru kódování budete moci převést text do kódování UCS-2, které je ze své podstaty velmi blízké standardu Unicode. Také v poznámkovém bloku bude možné kódovat text v ANSI, tzn. ve vztahu k ruštině to bude u nás popsáno již těsně nad Windows 1251. Odkud tato informace pochází?

Je registrován v registru vašeho operačního sálu. Systémy Windows- jaké kódování zvolit v případě ANSI, které zvolit v případě OEM (pro ruský jazyk to bude CP866). Pokud do počítače nainstalujete jiný výchozí jazyk, budou tato kódování nahrazena podobnými z kategorie ANSI nebo OEM pro stejný jazyk.

Po uložení dokumentu v kódování, které potřebujete v programu Poznámkový blok ++ nebo otevření dokumentu z webu pro úpravy, uvidíte jeho název v pravém dolním rohu editoru:

Aby se zabránilo Krakozyabrov, kromě výše popsaných akcí bude užitečné zapsat informace o tomto kódování do hlavičky zdrojového kódu všech stránek webu, aby nedošlo k záměně na serveru nebo místním hostiteli.

Obecně platí, že ve všech hypertextových značkovacích jazycích kromě Html se používá speciální xml deklarace, která označuje kódování textu.

Před zahájením analýzy kódu bude prohlížeč vědět, která verze se používá a jak přesně by měly být kódy znaků tohoto jazyka interpretovány. Co je však pozoruhodné, je, že pokud dokument uložíte ve výchozím unicode, pak lze tuto xml deklaraci vynechat (kódování bude považováno za UTF-8, pokud neexistuje kusovník, nebo YUTF-16, pokud existuje kusovník).

V případě dokladu HTML jazyk k označení použitého kódování Meta prvek, který se zapisuje mezi úvodní a závěrečnou značku Head:

... ...

Tento záznam je zcela odlišný od toho, který byl přijat v roce, ale plně vyhovuje novému standardu Html 5, který je zaváděn mazaně, a bude 100% správně pochopen každým, kdo jej použije na tento moment prohlížeče.

Teoreticky prvek Meta s označením kódování Html dokument bylo by lepší dát co nejvýše v záhlaví dokumentu takže v době setkání s prvním znakem v textu, který není ze základního ANSI (který se vždy čte správně a v jakékoli obměně), by již měl mít prohlížeč informace o tom, jak interpretovat kódy těchto znaků.

Hodně štěstí! Brzy se uvidíme na stránkách blogu

Mohlo by vás to zajímat

Co se stalo URL adresy jaký je rozdíl mezi absolutními a relativními odkazy pro web
OpenServer - moderní lokální server a příklad jeho použití pro Instalace WordPressu na počítači
Co je to Chmod, jaká oprávnění přidělovat souborům a složkám (777, 755, 666) a jak to udělat přes PHP
Vyhledávání Yandex na webu a v internetovém obchodě

Při pokusu o konfiguraci jedné nebo druhé funkce internetu pravděpodobně každý uživatel narazil na takový koncept jako "Unicode". Chcete-li zjistit, co tento pojem znamená, přečtěte si tento článek do konce.

Unicode: definice

Termín "Unicode" dnes znamená standard kódování znaků. Tento standard byl navržen v roce 1991 neziskovou organizací Unicode Inc. Standard Unicode byl navržen tak, aby kombinoval velké množství různých znaků v jednom dokumentu. Stránka vytvořená na základě takového kódování může obsahovat hieroglyfy, písmena a matematické symboly. V tomto kódování jsou všechny znaky zobrazeny bez problémů.

"Unicode": důvody pro vytvoření

Dlouho před příchodem systému Unicode se kódování vybíralo na základě preferencí autora dokumentu. Často z tohoto důvodu bylo pro přečtení jednoho dokumentu nutné použít různé tabulky. To však muselo být provedeno několikrát. To běžným uživatelům značně zkomplikovalo život. Jak již bylo zmíněno dříve, v roce 1991 nezisková organizace Unicode Inc. navrhl použít nový typ kódování informací. Tenhle typ kódování bylo vytvořeno s cílem kombinovat širokou škálu standardů. Kódování Unicode umožnilo dosáhnout nemožného: vytvořit nástroj, který podporuje obrovské množství znaků. Získaný výsledek předčil očekávání: dostali jsme dokumenty, které mohly současně obsahovat ruský i anglický text, stejně jako matematické výrazy a latinu. Před vytvořením jednotný systém vývojáři kódování museli vyřešit řadu problémů vyplývajících z existence velkého množství standardů, které již existovaly na tento moment... Nejběžnějšími z těchto problémů byly omezená znaková sada, elfské psaní, duplicitní fonty a problém s převodem různých kódování.

"Unicode": exkurze do historie

Představte si následující obrázek: na nádvoří z 80. let se výpočetní technika ještě tolik nerozšířila a má jinou podobu než dnes. Každý operační systém je svým způsobem jedinečný a nadšenci ho upravují pro určité specifické potřeby. V důsledku toho vedla potřeba výměny informací k dalším upřesněním. Při pokusu o čtení dokumentu vytvořeného v jiném operačním systému se na obrazovce obvykle zobrazily nesrozumitelné znakové sady. To vyžadovalo další práci s kódováním, což nebylo vždy možné provést rychle. Někdy trvalo zpracování požadovaného dokumentu několik měsíců. Uživatelé, kteří si často musí vyměňovat informace, si pro sebe začali vytvářet speciální převodní tabulky. Práce s takovými tabulkami odhalila jednu zajímavou vlastnost: je nutné vytvářet takové tabulky současně ve dvou směrech. Stroj nemůže provádět běžnou inverzi výpočtu. Pro něj je zdrojový soubor zapsán v pravém sloupci a výsledek je v levém. Naopak je nelze přeskupit. Pokud bylo nutné v dokumentu použít nějaké speciální znaky, nejprve je bylo nutné přidat a poté bylo také nutné vysvětlit dalšímu uživateli, co je s nimi potřeba udělat, aby se nezměnily v „kryakozyabry“. Je třeba také mít na paměti, že pro každé kódování jste museli vyvinout vlastní písma. To vedlo k vytvoření obrovského množství duplikátů v operačním systému. Například na jedné stránce mohl uživatel vidět tucet písem identických se standardním Times New Roman, ale označených UCS-2, UTF-16, UTF-8, ANSI. Je tedy potřeba vytvořit univerzální standard.

Unicode: tvůrci

Začátek historie vytvoření „Unicode“ lze připsat roku 1987. Tehdy Joe Becker ze společnosti Xerox spolu s Markem Davisem a Lee Collinsem z Applu zahájili výzkum praktického vývoje univerzálního kódování. V roce 1988 zveřejnil Joe Becker projekt na vytvoření mezinárodního vícejazyčného kódování. O několik měsíců později byla pracovní skupina pro vývoj Unicode rozšířena. Jeho součástí byli odborníci jako Glenn Wright ze Sun Microsystems, Mike Kernegan a Ken Whistler z RLG. To umožnilo dokončit práce na předběžném vytvoření jednotného standardu kódování.

Unicode: obecný popis

Kódování Unicode je založeno na obecný koncept symbol. Tato definice je chápána jako abstraktní fenomén, který existuje ve formě písma, realizovaného prostřednictvím grafémů. V Unicode je každý znak spojen s jedinečným kódem, který patří do jednoho nebo druhého bloku standardu. Takže například grafém "B" je přítomen v angličtině i ruštině, ale odpovídá dvěma různým symbolům. Tyto znaky lze také převést na malá písmena. To znamená, že každý z těchto symbolů je popsán klíčem, sadou vlastností a názvem.

Unicode: Výhody

Od ostatních moderních kódovacích systémů „Unicode“ se liší obrovskou zásobou znaků pro „šifrování“ různých znaků. Jde o to, že předchozí kódování měla pouze 8 bitů. To znamená, že podporovaly pouze 28 znaků. Nový vývoj měl 216 postav, což byl velký krok vpřed. Tak bylo možné zakódovat téměř všechny existující abecedy. Potřeba používat převodní tabulky s příchodem „Unicode“ zmizela. Přítomnost jediného standardu jednoduše snížila jejich užitečnost na nulu. Ve stejné době zmizely i „kryakozyabry“. Vznik nového standardu znemožnil jejich existenci. Odpadla také potřeba vytvářet duplicitní fonty.

Unicode: vývoj

Navzdory skutečnosti, že pokrok se nezastavil, kódování Unicode si nadále drží vedoucí pozici na světě. To se stalo možným především díky tomu, že se stal snadno implementovatelným a rozšířeným. Neměli bychom však předpokládat, že se dnes používá stejné kódování Unicode jako před 25 lety. Dnes se používá verze 5.x.x. Počet kódovaných znaků se zvýšil na 231. Od svého vzniku až do vydání verze 2.0.0 kódování Unicode téměř zdvojnásobilo počet znaků v něm obsažených. V následujících letech tento růst příležitostí pokračoval. V době, kdy se objevila verze 4.0.0, bylo nutné zvýšit samotný standard. Díky tomu získalo kódování Unicode podobu, v jaké jej známe dnes.

Co dalšího je užitečné v Unicode? Kromě obrovského a neustále rostoucího počtu znaků má kódování Unicode jednu docela užitečnou vlastnost. To je normalizace. Kódování neplýtvá prostředky počítače na pravidelnou kontrolu stejného znaku, který může mít podobný pravopis v různých abecedách. K tomuto účelu se používá speciální algoritmus, který umožňuje vykreslovat podobné symboly samostatně v grafu a odkazovat na ně a nekontrolovat pokaždé všechny informace. Celkem byly vyvinuty a implementovány čtyři takové algoritmy. Transformace v každém z nich se provádí podle určitého principu, který se liší od ostatních.

Každý uživatel internetu, který se snaží nakonfigurovat jednu nebo druhou z jeho funkcí, alespoň jednou viděl na displeji napsané slovo „Unicode“. Co to je, zjistíte přečtením tohoto článku.

Definice

Kódování Unicode je standard kódování znaků. Nabízela ji nezisková organizace Unicode Inc. v roce 1991. Norma je navržena tak, aby kombinovala co nejvíce různých typů znaků v jednom dokumentu. Stránka, která byla vytvořena na jejím základě, může obsahovat písmena a hieroglyfy z různých jazyků (od ruštiny po korejštinu) a matematické znaky. V tomto případě se všechny znaky v tomto kódování zobrazí bez problémů.

Důvody pro vytvoření

Kdysi, dávno před vznikem jednotného systému „Unicode“, bylo kódování voleno na základě preferencí autora dokumentu. Z tohoto důvodu jste často, abyste si mohli přečíst jeden dokument, museli použít různé tabulky... Někdy se to muselo udělat vícekrát, což běžnému uživateli výrazně zkomplikovalo život. Jak již bylo zmíněno, řešení tohoto problému v roce 1991 navrhla nezisková organizace Unicode Inc., která navrhla nový typ kódování znaků. Bylo zamýšleno spojit zastaralé a různorodé standardy. "Unicode" je kódování, které umožnilo dosáhnout v té době nemyslitelného: vytvořit nástroj, který podporuje obrovské množství znaků. Výsledek předčil mnohá očekávání – souběžně se objevily dokumenty obsahující anglický i ruský text, latinské a matematické výrazy.

Vytvoření jednotného kódování ale předcházela potřeba vyřešit řadu problémů, které vyvstaly kvůli obrovské rozmanitosti standardů, které již v té době existovaly. Nejběžnější jsou:

  • elfská písmena nebo "krakozyabry";
  • omezená znaková sada;
  • problém převodu kódování;
  • duplikace písem.

Malý historický exkurz

Představte si, že jsou 80. léta. Počítačová technologie není ještě tak rozšířený a má jinou podobu než dnes. V té době je každý OS svým způsobem jedinečný a každý nadšenec si ho upravuje pro konkrétní potřeby. Potřeba výměny informací se mění v další zdokonalování všeho na světě. Pokus o čtení dokumentu vytvořeného pod jiným OS často zobrazí na obrazovce nesrozumitelnou sadu znaků a začínají hry s kódováním. Ne vždy je to možné udělat rychle a někdy lze potřebný dokument otevřít po šesti měsících, nebo i později. Lidé, kteří si často vyměňují informace, si sami vytvářejí převodní tabulky. A nyní práce na nich odhaluje zajímavý detail: je třeba je vytvářet ve dvou směrech: „od mého k vašemu“ a naopak. Stroj nemůže provést banální inverzi výpočtů, protože v pravém sloupci je zdroj a v levém - výsledek, ale ne naopak. Pokud bylo potřeba v dokumentu použít nějaké speciální znaky, bylo třeba je nejprve přidat a poté také partnerovi vysvětlit, co musí udělat, aby se z těchto znaků nestaly „krakozyabry“. A nezapomínejme, že pro každé kódování jste museli vyvinout nebo implementovat vlastní fonty, což vedlo k vytvoření obrovského množství duplikátů v OS.

Představte si také, že na stránce písem uvidíte 10 stejných Times New Roman s malými poznámkami: pro UTF-8, UTF-16, ANSI, UCS-2. Chápete nyní, že bylo nutné vytvořit univerzální standard?

"Otcové stvořitelé"

Počátky Unicode lze vysledovat do roku 1987, kdy Joe Becker ze společnosti Xerox spolu s Lee Collinsem a Markem Davisem z Applu zahájili výzkum praktického vytvoření univerzální znakové sady. V srpnu 1988 zveřejnil Joe Becker návrh 16bitového mezinárodního vícejazyčného kódovacího systému.

Po několika měsících pracovní skupina Unicode byl rozšířen o Kena Whistlera a Mikea Kernegana z RLG, Glenna Wrighta ze Sun Microsystems a několik dalších, což vedlo k dokončení přípravných prací na společném standardu kódování.

obecný popis

Unicode je založen na konceptu znaku. Tato definice je chápána jako abstraktní fenomén, který existuje ve specifické formě písma a je realizován prostřednictvím grafémů (jejich „portrétů“). Každý znak je v „Unicode“ specifikován jedinečným kódem patřícím do konkrétního bloku normy. Například grafém B je v anglické i ruské abecedě, ale v Unicode odpovídá 2 různým znakům. Je na ně aplikována transformace, to znamená, že každý z nich je popsán databázovým klíčem, sadou vlastností a celým jménem.

Výhody Unicode

Kódování Unicode se od ostatních svých současníků lišilo velkým množstvím znaků pro „šifrování“ znaků. Faktem je, že jeho předchůdci měli 8 bitů, to znamená, že podporovali 28 znaků, ale nový vývoj měl již 216 postav, což byl obrovský krok vpřed. To umožnilo zakódovat téměř všechny existující a běžné abecedy.

S příchodem „Unicode“ nebylo potřeba používat převodní tabulky: jak jednotný standard jednoduše popřel jejich potřebu. Stejně tak „krakozyabry“ upadly v zapomnění – jediný standard je znemožnil a stejně tak eliminoval nutnost vytvářet duplicitní fonty.

Vývoj Unicode

Pokrok samozřejmě nestojí a od první prezentace uplynulo 25 let. Kódování Unicode si však tvrdošíjně udržuje svou pozici ve světě. V mnoha ohledech se to stalo možným díky tomu, že se to stalo snadno implementovaným a rozšířeným a bylo uznáváno jako vývojáři proprietárního (placeného) a open source softwaru.

Zároveň bychom neměli předpokládat, že dnes máme k dispozici stejné kódování Unicode jako před čtvrt stoletím. V tuto chvíli se jeho verze změnila na 5.х.х a počet kódovaných znaků se zvýšil na 231. Možnost používat větší zásobu znaků byla opuštěna, aby byla stále zachována podpora Unicode-16 (kódování, kde maximální počet znaků byl omezen na 216). Od svého vzniku až do verze 2.0.0 „Standard Unicode“ téměř zdvojnásobil počet znaků, které obsahuje. Růst příležitostí pokračoval i v následujících letech. Do verze 4.0.0 bylo potřeba zvýšit samotný standard, což se podařilo. Díky tomu získal „Unicode“ podobu, ve které jej známe dnes.

Co dalšího je v Unicode?

Kromě obrovského, neustále rostoucího počtu symbolů má ještě jednu užitečnou funkci. Jde o takzvanou normalizaci. Namísto procházení celého dokumentu znak po znaku a nahrazování příslušných ikon z vyhledávací tabulky se používá některý ze stávajících normalizačních algoritmů. o čem to mluvíme?

Místo plýtvání výpočetními prostředky na pravidelnou kontrolu stejného symbolu, který může být podobný v různých abecedách, se používá speciální algoritmus. Umožňuje vám vyjmout podobné znaky v samostatném sloupci substituční tabulky a odkazovat na ně, spíše než znovu a znovu kontrolovat všechna data.

Byly vyvinuty a implementovány čtyři takové algoritmy. V každém z nich probíhá transformace podle striktně definovaného principu, který se od ostatních liší, proto nelze označit žádný z nich za nejúčinnější. Každý z nich byl vyvinut pro specifické potřeby, byl implementován a úspěšně používán.

Distribuce normy

Za 25 let své historie je kódování Unicode pravděpodobně nejrozšířenější na světě. Programy a webové stránky jsou také přizpůsobeny tomuto standardu. Skutečnost, že Unicode dnes používá více než 60 % internetových zdrojů, může naznačovat šíři aplikace.

Nyní víte, kdy vznikl standard Unicode. Co to je, také víte a budete schopni ocenit plný význam vynálezu vytvořeného skupinou specialistů z Unicode Inc. před více než 25 lety.

Tato stránka vyžaduje ke správné funkci JavaScript. Povolte prosím JavaScript v nastavení vašeho prohlížeče.

Tabulka znaků Unicode

ukázat vše
Rozsah: 0000-001F: Řídicí znaky C0 0020-007F: Základní latinka 0080-009F: Řídicí znaky C1 00A0-00FF: Rozšířené znaky latinky-1 0100-017F: Rozšířené latinky-A 0180-024F: Rozšířené latinky-02B : Rozšířená znaková sada mezinárodní fonetické abecedy 02B0-02FF: Nekombinovatelné rozšířené znaky-modifikátory 0300-036F: Kombinovaná diakritika 0370-03FF: Řecká a koptská abeceda 0400-04FF: Cyrilice 0500-052F: Další znaky azbuky 0530-5 arménská abeceda 0590-05FF: hebrejština 0600-06FF: arabština 0700-074F: syrština 0750-077F: další arabské znaky 0780-07BF: tana (maledivština) 07C0-07FF: Nko 0800-07FF: Nko 0850-080808Abetarština Samde:08A 08FF: Arabština A-Extended Character Set 0900-097F: Devanagari 0980-09FF: Bengálština 0A00-0A7F: Gurmukhi 0A80-0AFF: Gujarati 0B00-0B7F: Oriya 0B80-0Cgu00: Tel. 0C80-0CFF: kannadština 0D00-0D7F: malajálamština 0D80-0DFF: sinhálština 0E00-0E7F: thajština 0E80-0EFF: laoština 0F00-0FFF: tibetština 1000-109F: myanmar 011110 gruzínština: H0ang -137F: Etiopské slabičné písmo 1380-139F: Další znaky etiopského písma 13A0-13FF: Čerokézské písmo 1400-167F: Kanadské slabikové písmo 1680-169F: Ogam 16A0-16FF: Runic 16A0-16FF:Runic171a písmo:070y-F371Barsk Hanunoo 1740-175F: Buhid 1760-177F: Tagbanwa 1780-17FF: Khmerské písmo 1800-18AF: Staré mongolské písmo 18B0-18FF: Rozšířené kanadské slabikové písmo 1900-194F: Limbu 1900-194F: Limbu 1900-194F: Limbu písmo:19 nové písmo dlaždice abecedy 19E0-19FF: Khmerské znaky 1A00-1A1F: Písmo Bugi (lontara) 1A20-1AAF: Staré dlaždice abecedy (Tai Tham) 1B00-1B7F: Balijské písmo 1B80-1 BBF: sundánské písmo 1BC0-1BFF: batakovské písmo 1C00-1C4F: lepcha (rong) písmo 1C50-1C7F: písmo Ol Chiki 1CD0-1CFF: védské znaky 1D00-1D7F: fonetické přípony 1D80-1DBF: Další telefonní přípony-1DFF: kombinovatelná diakritika 1E00-1EFF: Rozšířená latinka rozšířená 1F00-1FFF: Rozšířená řecká znaková sada 2000-206F: Interpunkční znaménka 2070-209F: Horní a dolní indexy 20A0-20CF: Symboly měn 20D0-20FF-20F kombinovaná diakritika 1210 Kombinovaná diakritika Podobné znaky 2150-218F: Číselné tvary 2190-21FF: Šipky 2200-22FF: Matematické operátory 2300-23FF: Různé technické znaky 2400-243F: Ikony řídicího kódu 2440-245F a OCR54 Vnořené znaky 54F : Symboly pro kreslení rámečků 2580-259F: Výplňové symboly 25A0-25FF: Geometrické tvary 2600-26FF: Různé symboly 27 00-27BF: Dingbats 27C0-27EF: Různé matematické symboly-A 27F0-27FF: Různé šipky-A 2800-28FF: Braillovo písmo 2900-297F: Různé symboly šipek-B 2980-29FFh: Různé operátory 2B00-2BFF: Různé znaky a šipky 2C00-2C5F: hlaholice 1AB0-1AFF: Kombinovaná diakritika (rozšíření A) 1CC0-1CCF: Rozšířená sada znaků sundštiny A9E0-A9FF: Myanmarské písmo (rozšíření B) AAEtended MeAAFF: Rozšířené sada AB30-AB8F: Rozšířená latinka-E AB30-AB6F: Warang-kshiti AB90-ABBF: Beria psaní pro Zaghawa 2C60-2C7F: Rozšířená latinka-C 2C80-2CFF: Koptská abeceda 2D00-2D2F: Další znaky 30beta gruzínštiny 2D7F: Tifinagh 2D80-2DDF: Rozšířený etiopský znak 2DE0-2DFF: Rozšířená azbuka-A 2E00-2E7F: Doplňkové znaky interpunkce 2E80-2EFF: Dodatečné hieroglyfické klíče KJK 2F00-2FDF: hieroglyfické klíče slovníku Kangxi 2FF0-2FFF: Znaky popisující hieroglyfy 3000-303F: Symboly CJK a interpunkce 3040-309F:203A-030Katin) Katin303A-030ak Katin30101 Hiragana-300 318F: Chamo v kombinaci s Hangul 3190-319F: Znaky použité v Cambun 31A0-31BF: Rozšířená znaková sada bopomofo 31C0-31EF: Vlastnosti CJK 31F0-31FF: Fonetická rozšíření katakany 3200-32FF: Vnořená CJKJ měsíců Značky 3400-4DBF: Sjednocené hieroglyfy CJK (rozšíření A) 4DC0-4DFF: Hexagramy I-ťing 4E00-9FFF: Sjednocené hieroglyfy CJK Psaní A000-A48F: Slabiky a A490-A4CF: AFFD -Abecední znaky AFF0 -A15yl Abecedy a Abi A640-A69F: Rozšířená azbuka-B A6A0-A6FF: Písmo Bamum A700-A71F: Znaky ohýbání výšky A720-A7FF: Rozšířená latinka D A800-A82F: Siloti Nagri A830-A83F: Indické číselné znaky A840 A87F: Čtverec pi smo Pagba Lama A880-A8DF: Saurashtra A8E0-A8FF: Dévanagari rozšířená znaková sada A900-A92F: Kayah Lee A930-A95F: Rejang A960-A97F: Hangul (rozšíření A) A980-A9DF:0javský skript7AA6AA6 (přípona A) AA80-AADF: písmo Tai Viet AB00-AB2F: znaková sada etiopského písma (přípona A) ABC0-ABFF: Meitei / Manipuri AC00-D7AF: Hangulské slabiky D800-DB7F: Horní část náhradních párů FF: DB80 -DB část náhradních párů pro soukromé použití DC00-DFFF: Spodní část náhradních párů E000-F8FF: Oblast pro soukromé použití F900-FAFF: Kompatibilní znaky CJK FB00-FB4F: Abecední reprezentace FB50-FDCF: Arabská písmena-A reprezentace FDF0-FDFF: Arabská písmena-A FE00-FE0F: Voliče písma FE10-FE1F: Svislé tvary FE20-FE2F: Kombinované poloviny FE30-FE4F: Vzory kompatibility CJK FE50-FE6F: Možnosti malých velikostí FE70-FE FF: Arabské formy písmen-B FF00-FFEF: Formuláře poloviční a plné šířky FFF0-FFFF: Speciální znaky

  • Co je Unicode?

    Unicode(angl. Unicode) je univerzální standard kódování znaků, který umožňuje poskytovat znaky pro všechny jazyky na světě.

    Na rozdíl od ASCII je jeden znak zakódován do dvou bajtů, což umožňuje použití 65 536 postavy proti 256 .

    Jak víte, jeden bajt je celé číslo od poškrábat před 255 ... Na druhé straně se bajt skládá z osm bity, které ukládají číselné hodnoty v binární podobě, kde každá následující jednotka aktuálního bitu je dvojnásobkem hodnoty předchozího bitu. Dva bajty tedy mohou uložit číslo z poškrábat před 65 535 , který nám umožňuje používat 65 536 znaků (nula + 65 535 , nula je také číslo, není to nic).

    Znaky Unicode jsou rozděleny do sekcí. První 128 znaky opakují tabulku ASCII.

    Za zobrazování znaků je zodpovědná rodina kódování. Unicode (Transformační formát Unicode - UTF). Nejznámější a nejrozšířenější kódování je UTF-8.

  • Jak používat stůl?

    Symboly jsou prezentovány po 16 kusech na řádek. Shora můžete vidět hexadecimální číslo z 0 před 16 ... Vlevo analogická čísla v hexadecimálním tvaru 0 před Fff.
    Spojením čísla vlevo s číslem výše zjistíte kód znaku. Například: anglický dopis F umístěný na lince 004 , ve sloupci 6 : 004 + 6 = kód znaku 0046 .

    Můžete však jednoduše přejet myší specifický charakter Kód znaku naleznete v tabulce. Buď klikněte na symbol a zkopírujte jej, nebo jeho kód v jednom z formátů.

    Do vyhledávacího pole můžete zadat hledaná klíčová slova, například: šipky, slunce, srdce. Alternativně můžete zadat kód znaku v libovolném formátu, například: 1123, 04BC, چ. Nebo samotný symbol, pokud chcete znát kód symbolu.

    Hledat pomocí klíčová slova je v současné době ve vývoji, takže nemusí přinášet výsledky. Ale mnoho oblíbených symbolů již lze nalézt.

Věřte nebo ne, v prohlížeči je zabudovaný formát obrázku. Tento formát umožňuje načíst obrázky dříve, než jsou potřeba, poskytuje vykreslení obrázku na běžné resp sítnicové obrazovky a umožňuje přidávat k obrázkům CSS. Dobře, to není tak úplně pravda. Nejedná se o poměr stran, i když vše ostatní zůstává stejné. Pomocí něj můžete vytvářet ikony nezávislé na rozlišení, které se nenačítají a jsou stylizované pomocí CSS.

Co je Unicode?

Unicode je schopnost správně zobrazovat písmena a interpunkční znaménka z různých jazyků na jedné stránce. Je to neuvěřitelně užitečné: uživatelé budou moci s vaším webem pracovat po celém světě a bude ukazovat, co chcete – může to být francouzština s diakritikou nebo kanji.

Unicode se nadále vyvíjí: nyní je relevantní verze 8.0 s více než 120 tisíci znaky (v původním článku, publikovaném na začátku roku 2014, šlo o verzi 6.3 a 110 tisíc znaků).

Kromě písmen a číslic jsou v Unicode i další symboly a ikony. PROTI nejnovější verze mezi ně patří emotikony, které můžete vidět v aplikaci iOS messenger.

Stránky HTML jsou vytvořeny ze sekvence znaků Unicode a při odeslání přes síť jsou převedeny na bajty. Každé písmeno a každý znak jakéhokoli jazyka má svůj vlastní jedinečný kód a je zakódován při uložení souboru.

Při použití systému kódování UTF-8 můžete přímo vkládat znaky Unicode do textu, ale můžete je také přidat do textu zadáním digitálního symbolického odkazu. Toto je například symbol srdce a tento symbol můžete zobrazit jednoduše přidáním kódu do označení.

Tento číselný odkaz lze zadat v desítkovém nebo hexadecimálním formátu. Desetinný formát vyžaduje přidání písmene x na začátek, zápis bude dávat stejné srdce () jako předchozí možnost. (2665 je hexadecimální verze 9829).

Pokud přidáváte znak Unicode pomocí CSS, můžete použít pouze hexadecimální hodnoty.

Některé z nejběžněji používaných znaků Unicode mají místo číselných kódů lépe zapamatovatelné textové názvy nebo zkratky, jako je ampersand (& - &). Takové symboly se nazývají mnemotechnické pomůcky v HTML, kompletní seznam je k dispozici na Wikipedii.

Proč byste měli používat Unicode?

Dobrá otázka, zde je několik důvodů:

  1. Chcete-li použít správné znaky z různých jazyků.
  2. Chcete-li nahradit ikony.
  3. Chcete-li nahradit ikony připojené přes @ font-face.
  4. Chcete-li definovat třídy CSS

Platné znaky

První z důvodů nevyžaduje žádná další opatření. Pokud je HTML uloženo ve formátu UTF-8 a jeho kódování je přenášeno po síti jako UTF-8, mělo by vše fungovat, jak má.

Musí. Bohužel ne všechny prohlížeče a zařízení podporují všechny znaky Unicode stejně (přesněji ne všechna písma podporují úplnou znakovou sadu). Například nedávno přidané emotikony nejsou všude podporovány.

Pro podporu UTF-8 v HTML5 přidejte (pokud nemáte přístup k nastavení serveru, měli byste také přidat ). Starý doctype používá ( ).

ikony

Druhým důvodem pro použití Unicode je přítomnost velký počet užitečné symboly, které lze použít jako ikony. Například ≡ a.

Jejich zjevnou výhodou je, že žádné nepotřebujete další soubory přidat je na stránku, což znamená, že váš web bude rychlejší. Můžete také změnit jejich barvu nebo přidat stín pomocí CSS. A přidáním přechodů (css přechod) můžete plynule změnit barvu ikony, když na ni najedete myší, bez dalších obrázků.

Řekněme, že chci na svou stránku zahrnout indikátor hodnocení hvězdičkami. Můžu to udělat takto:

★ ★ ★ ☆ ☆

Získáte následující výsledek:

Ale pokud budete mít smůlu, uvidíte něco takového:

Stejné hodnocení na BlackBerry 9000

To se stane, pokud použité znaky nejsou v prohlížeči nebo písmu zařízení (naštěstí jsou tyto hvězdičky perfektně podporovány a staré telefony BlackBerry jsou zde jedinou výjimkou).

Pokud zde není žádný znak Unicode, mohou na jeho místě být různé znaky od prázdného čtverce (□) po kosočtverec s otazníkem (�).

Jak najdete znak Unicode, který by mohl fungovat pro váš návrh? Můžete jej vyhledat na webu, jako je Unicodinator, když se podíváte na dostupné postavy, ale také existuje nejlepší způsob... - tato skvělá stránka vám umožní nakreslit ikonu, kterou hledáte, a poté vám nabídne seznam podobných znaků Unicode.

Použití Unicode s ikonami fontů @

Pokud používáte ikony, které se připojují k externímu písmu pomocí @ font-face, lze jako záložní řešení použít znaky Unicode. Tímto způsobem můžete zobrazit podobný znak Unicode na zařízeních nebo prohlížečích, kde @ font-face není podporován:

Vlevo jsou ikony Font Awesome v Chrome a vpravo jejich náhrady Unicode v Opeře Mini.

Mnoho nástrojů pro porovnávání fontů @ používá řadu znaků Unicode z oblasti soukromého použití. Problém s tímto přístupem je, že pokud @ font-face není podporován, znakové kódy jsou uživateli předány bez jakéhokoli významu.

Skvělé pro vytváření sad ikon v @ font-face a umožňuje vám vybrat si vhodný znak Unicode jako základ ikony.

Ale pozor – některé prohlížeče a zařízení nemají rády jednotlivé znaky Unicode při použití s ​​@ font-face. Má smysl testovat podporu znaků Unicode pomocí Unify – tato aplikace vám pomůže určit, jak bezpečné je použití znaku v sadě ikon @ font-face.

Podpora znaků Unicode

Hlavním problémem při používání znaků Unicode jako záložních znaků je špatná podpora v programech pro čtení z obrazovky (některé informace o tom lze opět najít na Unify), proto je důležité pečlivě vybírat znaky, které používáte.

Pokud je vaše ikona pouze dekorativním prvkem vedle textového štítku čitelného čtečkou obrazovky, nemusíte se příliš obávat. Pokud je však ikona sama o sobě, vyplatí se přidat skrytý textový štítek, který uživatelům čteček obrazovky pomůže. I když je znak Unicode přečten čtečkou obrazovky, existuje šance, že se bude velmi lišit od zamýšleného účelu. Například ≡ (≡) jako ikonu hamburgeru bude VoiceOver na iOS číst jako „identická“.

Unicode v názvech tříd CSS

Skutečnost, že Unicode lze použít v názvech tříd a ve stylech, je známá od roku 2007. Tehdy Jonathan Snook psal o použití znaků Unicode v pomocných třídách při psaní se zaoblenými rohy. Tento nápad nebyl příliš rozšířen, ale stojí za to vědět o možnosti použití Unicode v názvech tříd (speciální znaky nebo azbuka).

Výběr písma

Jen málo písem podporuje úplnou sadu znaků Unicode, takže při výběru písma nezapomeňte zkontrolovat znaky, které chcete.

Spousta ikon v Segoe UI Symbol nebo Arial Unicode MS. Tato písma jsou k dispozici na počítačích PC i Mac; Lucida Grande má také značné množství znaků Unicode. Tato písma můžete přidat do deklarace rodiny písem, abyste zajistili, že uživatelům, kteří mají tato písma nainstalovaná, bude k dispozici maximální počet znaků Unicode.

Určení podpory Unicode

Bylo by skvělé mít možnost zkontrolovat přítomnost konkrétního znaku Unicode, ale neexistuje žádný zaručený způsob, jak to udělat.

Znaky Unicode mohou být účinné, pokud jsou podporovány. Například emotikon v předmětu je odlišuje od ostatních poštovní schránka.

Závěr

Tento článek pokrývá pouze základy Unicode. Doufám, že vám pomůže lépe porozumět Unicode a efektivně jej používat.

Seznam odkazů

  • (Generátor sady ikon @ font-face založený na Unicode)
  • Shape Catcher (nástroj pro rozpoznávání znaků Unicode)
  • Unicodinator (tabulka znaků Unicode)
  • Unify (Zkontrolujte podporu znaků Unicode v prohlížečích)
  • Unitools (sbírka nástrojů pro práci s Unicode)