Invia.cz
Last minute
Tunisko
Dovolená v Chorvatsku
Pojeďte do Egypta
Bulharsko
Vydělávejte peníze s INVIA.CZ
Letní dětský tábor
Unicode je tabulka znaků všech existujících abeced, která v současnosti obsahuje více než 100 000 znaků.
Vývoj Unicode začal v roce 1987 a byl dovršen v roce 1991 založením Unicode Consortium.
Obsah |
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.
Unicode verze 1.1 odpovídá normě ISO 10646-1:1993, Unicode 3.0 odpovídá ISO 10646-1:2000, 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 (např. arabština), podporou oboustranných textů (jako např. směs hebrejštiny a latinky), algoritmy pro řazení a porovnávání textů.
V současné chvíli existuje Unicode ve verzi 5.1, která vyšla v roce 2008. Celkem obsahuje na 100 713 znaků a symbolů ze 75 různých jazyků a abeced[2]. 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.
Každý znak má jednoznačný číselný kód a svůj název. Tabulka Unicode poskytuje prostor pro 1,114,112 znaků s kódy 0hex až 10FFFFhex. Tento prostor se dělí na 17 částí, každý o velikosti 216. První část se nazývá Basic Multilingual Plane (BMP) a obsahuje znaky běžně používaných abeced. Původní 16bitový návrh Unicode počítal jen s BMP, následně se ale ukázalo, že pro pokrytí všech používaných abeced to nestačí.
Existuje několik různých způsobů zápisu Unicode znaků. Pro vnitřní reprezentaci v programech se často používá UTF-16 (respektive podmnožina UCS-2). UCS-2 ukládá znaky jako 16bitová čísla, takže umožňuje zapsat jen prvních 216 znaků (BMP tabulku). Toto omezení odstraňuje UTF-16, které definuje páry čísel, které reprezentují znaky mimo BMP.
Textové řetězce v UTF-16 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 se pro přenos dat častěji používá kódování nazývané 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.
Znakovou sadu Unicode používá většina moderních operačních systémů.
Operační systémy Microsoft Windows používají Unicode pro vnitřní zápis znaků od verze NT přes 2000 až po Windows Vista.
Také většina distribucí Linuxu buď má nastaveno UTF-8 jako výchozí kódování nebo alespoň umožňuje jeho používání.
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áctibitovou 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 znakovou sadou pro HTML dokumenty od verze 4.0 a pro všechny XML dokumenty. Výchozím kódováním je UTF-8, které všechny prohlížeče podporují už delší dobu.
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.
| znak | HTML | dec | hex | UTF-8 | znak | HTML | dec | hex | UTF-8 |
|---|---|---|---|---|---|---|---|---|---|
| Á | Á | Á | Á | %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 |