Unicode

Z Multimediaexpo.cz

Unicode je původně šestnáctibitová tabulka znaků všech existujících abeced, později rozšířená na 31 bitů. Projekt Unicode začal v roce 1988 a byl dovršen v roce 1991 založením neziskové organizace Unicode Consortium, která se stará o další vývoj standardu.

Obsah

Vývoj

Ke konci osmdesátých let 20. století vznikla naléhavá potřeba sjednotit různé kódové tabulky znaků pro národní abecedy. Například český jazyk používal v informatice nejméně 5 různě kódovaných tabulek (kódování bratří Kamenických, PC Latin 2, Windows 1250, ISO Latin 2, … [1]). Vznikaly značné problémy při spolupráci aplikací a při přenosech dat mezi programy a různými platformami. Podobná situace byla ve všech jazycích, které nevystačily se základní 7bitovou tabulkou ASCII znaků.

V té době vznikly současně dva projekty pro vytvoření jednotné univerzální kódovací tabulky znaků. Byl to projekt ISO 10646 organizace ISO a projekt Unicode. Norma ISO definuje tzv. UCS - Universal Character Set.

Kolem roku 1991 došlo k dohodě a projekty spojily své úsilí na vytvoření jednotné tabulky. Oba projekty stále existují a publikují své standardy samostatně, ale tabulky znaků jsou kompatibilní a jejích rozšiřování je koordinováno.

Současný stav

Unicode verze 1.1 odpovídá normě ISO 10646-1:1993, Unicode 3.0 odpovídá ISO 10646-1:1993, Unicode 4.0 odpovídá připravované třetí verzi ISO 10646. Všechny verze Unicode od 2.0 výše jsou kompatibilní, jsou přidávány pouze nové znaky, existující znaky nejsou vyřazovány nebo přejmenovávány.

Standard Unicode se oproti ISO 10646 navíc zabývá implementací algoritmů pro písma psaná zprava doleva (arabština), podporou oboustranných textů (jako např. směs hebrejštiny a latinky), algoritmy pro řazení a porovnávání textů.

Bohaté možnosti Unicode mají i nevýhody, především vznikají problémy s nekompatibilitou se staršími aplikacemi, které jsou orientovány na jednobytové znaky. Také velmi narůstá délka textů. Textové řetězce v Unicode mohou obsahovat byty, které mají zvláštní význam pro programovací jazyky (např. binární nuly), nebo operační systémy (např. lomítka oddělující adresáře ve specifikaci souboru). Z tohoto důvodu byl navržen systém kódování znaků Unicode, nazývaný UTF (UCS Transformation Format). Nejpoužívanější variantou je UTF-8, popsaný v ISO 10646-1:2000 Annex D a také v RFC 3629. Formát UTF-8 kóduje znaky Unicode do sekvence 1 až 6 bytů. Pro českou abecedu stačí pro znaky bez diakritiky jeden byte a pro znaky s diakritikou dva byty. UTF kódování odstraňuje všechny nevýhody neupraveného Unicode. Dále existují formáty UTF-16 a UTF-32.

V současné chvíli existuje Unicode ve verzi 5.0.0, které vyšlo v roce 2006. Oproti předchozí 4.1.0 bylo do nové verze zařazeno 1 369 nových znaků. Celkem se jejich počet rozšířil na 238 676 znaků a symbolů různých jazyků. Unicode Consortium již v této chvíli zaručuje, že všechny nové verze budou zpětně kompatibilní s předchozími, tj. že nové standardy budou přidávat další znaky, ale žádné již nebudou odstraňovat ani měnit.

V plánu je nový standard - Unicode verze 5.1.0, který pravděpodobně bude dokončen v březnu 2008.

Znaky Unicode

Znak Unicode může být až 31 bitů dlouhý. Tento rozsah (maximálně 231 = 2147483648 různých znaků) pokrývá všechny známé znakové sady jazyků na Zemi, včetně japonského nebo čínského písma. Používá se dále pro fonetické abecedy (pro zápis výslovnosti), speciální vědecké a matematické symboly, kombinované znaky a podobně. Každý znak má jednoznačný číselný kód a svůj název. Binární podobu řeší konkétní kódování.

Operační systémy

Znaková sada Unicode se stále více prosazuje v aplikacích i operačních systémech.

Unicode pro vnitřní zápis znaků používá Microsoft Windows od verze Windows NT 4.0 přes Windows 2000 až po Windows XP.

V systému OS/2 Aurora verze 4.5 byla implementace Unicode plně dokončena v polovině roku 1999.

Přecházejí na ni i další operační systémy - třeba většina distribucí Linuxu.

Aplikace

Některé starší aplikace Unicode (dosud) nepodporují. Na druhé straně pro některé systémy je Unicode již jedinou používanou znakovou sadou.

Programovací jazyky Java a jazyky podporující Common Language Infrastructure (např. C#) vnitřně používají šestnáctibitou verzi Unicode a navenek podporují mnoho různých kódování.

Též systémy řízení báze dat dnes již často používají Unicode pro uložení znakových údajů.

Na Unicode je založen kancelářský balík Microsoft Office od verze 97.

Unicode je výchozí znakovou sadou pro XML.

Čeština

Na rozdíl od dřívějších osmibitových tabulek znaků jako je bratří Kamenických, Latin 2, Windows-1250 či ISO-8859-2 lze všechny znaky zobrazit zároveň; v jednom textu lze tedy kombinovat např. češtinu, ruštinu a řečtinu.

Tabulka českých znaků Unicode

znak HTML dec hex UTF-8 znak HTML dec hex UTF-8
Á Á &#193 Á %C3%81 á á á á %C3%A1
Č Č Č Č %C4%8C č č č č %C4%8D
Ď Ď Ď Ď %C4%8E ď ď ď ď %C4%8F
É É É É %C3%89 é é é é %C3%A9
Ě Ě Ě Ě %C4%9A ě ě ě ě %C4%9B
Í Í Í Í %C3%8D í í í í %C3%AD
Ň Ň Ň Ň %C5%87 ň ň ň ň %C5%88
Ó Ó Ó Ó %C3%93 ó ó ó ó %C3%B3
Ř Ř Ř Ř %C5%98 ř ř ř ř %C5%99
Š Š Š Š %C5%A0 š š š š %C5%A1
Ť Ť Ť Ť %C5%A4 ť ť ť ť %C5%A5
Ú Ú Ú Ú %C3%9A ú ú ú ú %C3%BA
Ů Ů Ů Ů %C5%AE ů ů ů ů %C5%AF
Ý Ý Ý Ý %C3%9D ý ý ý ý %C3%BD
Ž Ž Ž Ž %C5%BD ž ž ž ž %C5%BE

Externí odkazy