Hledat:

Set-top-boxy Parfémy Krása Produkty pro zdraví Hodinky Elektro Šperky Nábytek Nářadí a zahrada Outdoor Počítače Mobily
 

Unicode

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

[editovat] 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.

[editovat] Dnes

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á třetí verzi ISO 10646:2003. Všechny verze Unicode od 2.0 výše jsou zpětně 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.2, která vyšla v roce 2009.[2] Celkem obsahuje na 107 296 znaků a symbolů z 90 různých jazyků a abeced.[3] 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.

[editovat] Znaky Unicode

Každý znak má jednoznačný číselný kód a svůj název. Navíc Unicode definuje u každého znaku některé základní vlastnosti jako např. zda se jedná o písmeno, symbol atd., zda je písmeno velké či malé atp. Tabulka Unicode poskytuje prostor pro 1 114 112 znaků s kódy 016 až 10FFFF16. 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čí.

[editovat] Kódování

BOM
(hexa)
Velikost
prostoru Unicode
Kódování velikost
atomu (B)
počet
atomů
maximální
délka znaku (B)
00 00 FE FF 32b, větší než BMP Unicode-32, big-endian 2B 2 4B = 32b
FF FE 00 00 32b, větší než BMP Unicode-32, little-endian 2B 2 4B = 32b
?? ?? ?? ?? ?? ?? 32b, větší než BMP UTF-16 2B = 16b 1, 2 nebo 3 6B
EF BB BF ?? 24?b UTF-8, rozšíření 1B až 4 4B
FE FF 16b, právě BMP Unicode-16, big-endian 2B 1 2B = 16b
FF FE 16b, právě BMP Unicode-16, little-endian 2B 1 2B = 16b
EF BB BF 16b, právě BMP UTF-8 1B = 8b 1, 2 nebo 3 3B
- 8b, menší než BMP ASCII + code page - - 1B
- 7b, menší než BMP ASCII - - 7b

Existuje několik různých způsobů, jak znaky Unicode kódovat. Základní kodování, definovaná přímo ve standardu Unicode, jsou:

Kódování UTF-32 a UTF-16 mají každá své varianty podle používaného pořadí bajtů. Buď je napevno stanoveno pořadí little-endian, resp., big-endian, nebo se toto pořadí určuje podle tzv. byte order mark (BOM), speciální značky umístěné na začátku textu.

[editovat] UTF-32

V kódování UTF-32 (též označováno jako UCS-4) je každý znak reprezentován přímo 32bitovým číslem. Jedná se tedy o principiálně velmi jednoduché kódování (jeho hlavní výhodou je stejná délka všech znaků), které však má poměrně vysoké nároky na paměť. Při serializaci do posloupnosti bajtů se podle endianity rozlišují varianty UTF-32BE (big-endian), UTF-32LE (little-endian) a UTF-32 (nestanoveno, může být určeno pomocí BOM).

[editovat] UTF-16

V kódování UTF-16 se znaky BMP reprezentují jedním 16bitovým číslem, znaky mimo BMP jsou reprezentovány párem 16bitových čísel (tzv. surrogate pair). Pro surrogate pairs se používají čísla v rozsahu D80016–DFFF16, přičemž odpovídající znaky v BMP (U+D800 – U+DFFF) jsou rezervovány pro tento účel, nemohou se proto v původním textu vyskytnout.

Existuje starší obdoba tohoto kódování, kódování UCS-2, které znaky BMP kóduje shodně jako UTF-16, ale nepodporuje surrogate pairs a znaky mimo BMP v něm vůbec nelze reprezentovat.

I zde se podle endianity rozlišují varianty UTF-16BE (big-endian), UTF-16LE (little-endian) a UTF-16 (nestanoveno, může být určeno pomocí BOM).

UTF-16 je výrazně úspornější než UTF-32, ale ztrácí jeho výhodu pevné šířky znaku – některé znaky jsou široké 2 bajty, některé 4. Přesto se jedná o kódování používané jako základní ve velkém množství operačních systémů a dalšího software (např. Microsoft Windows, .NET Framework atd.).

[editovat] UTF-8

V UTF-8 se znaky kódují různě dlouhou (1–4 bajty) posloupností bajtů podle jejich pozice v Unicode. Znaky ASCII (U+0000 – U+007F) jsou kódovány jedním bajtem, identicky jako v ASCII, znaky v rozsahu U+0080 – U+07FF (kde jsou také všechny znaky s diakritikou používané v české abecedě) jsou kódovány dvěma bajty, znaky U+0800 – U+FFFF jsou kódovány třemi bajty, znaky mimo BMP jsou kódovány čtyřmi bajty.

UTF-8 se často se používá pro přenos dat, neboť je prostorově úsporné (znaky běžných písem jsou kódovány krátkými posloupnostmi; nevýhodu mají uživatelé písem Dálného východu), odolné proti chybám a zpětně kompatibilní s ASCII. Jeho nevýhodou jsou však odlišné délky jednotlivých znaků.[4]

UTF-8 je popsané v ISO 10646-1:2000 Annex D a také v RFC 3629.

[editovat] Další kódování

Z různých důvodů existují také další méně často používaná kódování, jako jsou např. UTF-7 či CESU-8.

[editovat] Operační systémy

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í.

[editovat] 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á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.

[editovat] Web

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.

[editovat] Č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.

[editovat] Tabulka českých znaků Unicode

znak HTML entita dec hex UTF-8 v URL znak HTML entita dec hex UTF-8 v URL
Á Á Á Á %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

[editovat] Literatura

[editovat] Reference

  1. Přehled kódování češtiny
  2. About the Unicode Standard
  3. Unicode Scripts
  4. The Unicode Standard, Version 5.2, kapitola 2.5 Encoding Forms, s. 28

[editovat] Externí odkazy

 
Unicode v jiných jazycích: Alemannisch, العربية, Azərbaycan, Български, বাংলা, Brezhoneg, Bosanski, Català, ᏣᎳᎩ, Soranî / کوردی, Dansk, Deutsch, Ελληνικά, English, Esperanto, Español, Eesti, Euskara, فارسی, Suomi, Français, Gaeilge, Galego, עברית, हिन्दी, Hrvatski, Magyar, Հայերեն, Interlingua, Bahasa Indonesia, Íslenska, Italiano, 日本語, Basa Jawa, ქართული, ಕನ್ನಡ, 한국어, कश्मीरी - (كشميري), Kurdî, Кыргызча, Lietuvių, Latviešu, മലയാളം, मराठी, Bahasa Melayu, Plattdüütsch, नेपाली, नेपाल भाषा, Nederlands, ‪Norsk (nynorsk)‬, ‪Norsk (bokmål)‬, Polski, Português, Română, Русский, Саха тыла, Srpskohrvatski / Српскохрватски, Simple English, Slovenčina, Slovenščina, Shqip, Српски / Srpski, Svenska, தமிழ், తెలుగు, Тоҷикӣ, ไทย, Tagalog, Türkçe, Українська, اردو, Tiếng Việt, , Yorùbá, 中文, Bân-lâm-gú, 粵語
Tento článek je převzat z české wikipedie - otevřené encyklopedie, originální článek naleznete na adrese: „http://cs.wikipedia.org/wiki/Unicode
Stránka byla naposledy upravena 17. 7. 2010 v 00:05.
Text je dostupný pod licencí Creative Commons Uveďte autora – Zachovejte licenci 3.0 Unported, případně za dalších podmínek. Podrobnosti naleznete na stránce Podmínky užití.
Další služby: Portál | Katalog | Hledej | Zprávy | Počasí | Kurzy | Práce | Slovník | TV | Online hry | Java hry | SMS | Loga a melodie | Chat | Fórum | Kontakt | Set-top-boxy