Unicode: Porovnání verzí

Smazaný obsah Přidaný obsah
multilingual → vícejazyčný
m Podkapitoly "Basic Multilingual Plane", "Roviny Unicode" a "Náhradní páry", oprava pomlček, úprava části UCS-2
Řádek 12:
 
== Historie ==
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říkladPro [[čeština|český jazyk]] používalse v informaticepoužívalo nejméně 5 různěrůzných kódovaných[[Kódování tabulekčeštiny|kódování]] ([[Kód Kamenických|kódování bratří Kamenických]], [[CP852|PC Latin 2]], [[Windows-1250]], [[ISO 8859-2|ISO Latin 2]], [[KOI#KOI8-CS|KOI8-CS]]<ref>[http://www.cestina.cz/kodovani/ Přehled kódování češtiny]</ref>). Vznikaly značné problémy při spolupráci aplikací a při přenosech dat mezi programy a různými platformami. Podobnápodobná situace byla ve všech jazycích, které nevystačily se základní 7bitovou tabulkou [[ASCII]] znaků, což přinášelo problémy při při přenosech dat mezi programy a platformami a spolupráci aplikací.
 
V té době vznikly současně dva projekty pro vytvoření jednotné univerzální kódovací tabulky znaků. Byl to projekt [[ISO 10646]] organizace [[Mezinárodní organizace pro normalizaci|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é [[standard]]y samostatně, ale tabulky znaků jsou kompatibilní a jejich rozšiřování je koordinováno.
Řádek 27:
* [http://www.unicode.org/versions/Unicode3.0.0/ Unicode '''3.0'''] ([[1999]], [[2000]], odpovídá normě ISO 10646-1:2000), [http://www.unicode.org/versions/Unicode3.1.0/ Unicode '''3.1'''] ([[2001]]), [http://www.unicode.org/versions/Unicode3.2.0/ Unicode '''3.2'''] ([[2002]])
* [http://www.unicode.org/versions/Unicode4.0.0/ Unicode '''4.0'''] ([[2003]], odpovídá třetí verzi ISO 10646:2003), [http://www.unicode.org/versions/Unicode4.1.0/ Unicode '''4.1'''] ([[2005]])
* [http://www.unicode.org/versions/Unicode5.0.0/ Unicode '''5.0'''] ([[2006]]), [http://www.unicode.org/versions/Unicode5.1.0/ Unicode '''5.1'''] ([[2008]]), [http://www.unicode.org/versions/Unicode5.2.0/ Unicode '''5.2'''] ([[2009]]) - celkem obsahuje více než 245 000 znaků a symbolů z 90 různých jazyků a abeced.<ref>[http://www.unicode.org/charts/ Unicode Scripts]</ref>
* [http://www.unicode.org/versions/Unicode6.0.0/ Unicode '''6.0'''] ([[2010]]), [http://www.unicode.org/versions/Unicode6.1.0/ Unicode '''6.1'''] ([[2012]]), [http://www.unicode.org/versions/Unicode6.2.0/ Unicode '''6.2'''] ([[2012]]), [http://www.unicode.org/versions/Unicode6.3.0/ Unicode '''6.3'''] ([[2013]])
* [http://www.unicode.org/versions/Unicode7.0.0/ Unicode '''7.0'''] ([[2014]]) - rozšiřuje množinu znaků o asi 250 znaků [[emodži]].<ref>{{Citace elektronického periodika
| příjmení = Němec
| jméno = Petr
Řádek 47:
| datum aktualizace =
}}</ref>, celkem přidává 2834 nových znaků (327 do BMP, zbytek do Plane 1), zavádí 23 nových jazyků.<ref>[http://www.unicode.org/versions/Unicode7.0.0/ Unicode 7.0.0] na unicode.org, cit. 2014-08-26</ref>
* [http://www.unicode.org/versions/Unicode8.0.0/ Unicode '''8.0'''] (2015) - obsahuje celkem 120737 grafických znaků ve 129 písmech; zavádí podporu abecedy Ahom, anatolských hieroglyfů, abeced Hatran, Multani, [[Rovas]] a [[znakopis]]u, doplňuje 5771 unifikovaných [[CJK]] ideografů, sadu malých písmen pro slabičné písmo Cherokee a pět emoji modifikátorů pro odstíny kůže<ref>{{Citace elektronické monografie
| titul = Unicode Data 8.0.0
| url = http://www.unicode.org/Public/8.0.0/ucd/UnicodeData.txt
Řádek 54:
</ref>.
* [http://www.unicode.org/versions/Unicode9.0.0/ Unicode '''9.0'''] ([[2016]])
* [http://www.unicode.org/versions/Unicode10.0.0/ Unicode '''10.0'''] ([[2017]]) - definuje celkem 136690 znaků ze 139 jazyků a abeced
* [http://www.unicode.org/versions/Unicode11.0.0/ Unicode '''11.0'''] ([[2018]])
* [http://www.unicode.org/versions/Unicode12.0.0/ Unicode '''12.0'''] ([[2019]])
 
== Principy standardu Unicode ==
* '''Jednotnost''' - konstantní šířka znaků (UTF-32) dovoluje efektivní hledání, třídění, editaci a zobrazení prvků.
* '''Univerzálnost''' - zahrnutí všech znaků, které by mohly být využity při výměně textů – především ty, které už byly definovány v hlavních mezinárodních, národních a průmyslových znakových sadách.
* '''Jednoznačnost''' - jakákoli 16bitová (dnes 32bitová) hodnota zastupuje v jakémkoliv kontextu stejný znak.
* '''Maximální využití''' - snadná zpracovatelnost textu poskládaného z posloupnosti znaků o konstantní šířce; kódování znaků není závislé na kontextu, pro strojové zpracování textu není nutné vyhodnocovat escape sekvence nebo prohledávat text dopředu či zpět kvůli určení totožnosti znaků.
 
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 [[abecední řazení|řazení]] a porovnávání textů.
Řádek 73:
 
== Architektura Unicode ==
 
Unicode byl původně navrhován jako 16bitová znaková sada, což se později (hlavně s ohledem na čínskou znakovou sadu) ukázalo jako nedostatečné. Prvních 65 536 znaků, které jsou reprezentovatelné pomocí 16 bitů se označuje jako BMP (basic multilanguage plane) - základní vícejazyčná rovina unicode. Rozsah 65,536 (10000<sub>16</sub>) následujících bodů Unicode, které se liší pouze spodními 16 bity se nazýva Plane (rovina). Unicode tedy obsahuje celkem 17 "rovin": BMP, Plane 1, Plane 2, ... až Plane 16. Celková kapacita Unicode je tedy 1114112 kódových bodů. Důležitým stavebním prvkem Unicode jsou ''surrogates'' (náhrady), které umožňují v kódování [[UTF-16]] pomocí dvou znaků (páru ''surrogates'') zakódovat jeden znak nad BMP.
==={{Kotva|BMP}} Basic Multilingual Plane ===
 
Unicode byl původně navrhován jako 16bitová znaková sada, což se později (hlavně s ohledem na [[CJK|čínské znaky]]) ukázalo jako nedostatečné. Původní rozsah Unicode, tj. prvních 65 536 znaků, které jsou reprezentovatelné pomocí 16 bitů, se označuje jako BMP (Basic Multilingual Plane) – základní vícejazyčná rovina Unicode.
 
=== Roviny Unicode ===
 
Standard [[ISO/IEC 10646]] oproti Unicode zpočátku používal 31bitové kódování znaků, které umožňuje reprezentaci více než 2 miliard znaků. Toto množství se ukázalo být zbytečně velké, proto bylo v listopadu 2003 v souvislosti se zavedením kódování UTF-16 omezeno na rozsah 0 až 10FFFF<sub>16</sub> rozdělený na 17 tak zvaných '''rovin''' ({{Vjazyce|en}} {{Cizojazyčně|en|''plane''}}) po 65&nbsp;536 znacích (10000<sub>16</sub>). Celý rozsah kódů tak lze rozdělit na BMP (Plane 0), Plane 1, Plane 2, ... až Plane 16. Celková kapacita Unicode je tedy 1114112 kódových bodů.
 
==={{Kotva|Surrogate Pairs}} Náhradní páry ===
 
Znaky mimo BMP se v [[UTF-16]] kódují dvojicí speciálních kódů, které se nazývají '''zástupné''' nebo '''náhradní páry''' ({{Vjazyce|en}} {{Cizojazyčně|en|''surrogate pairs'', ''surrogates''}}). Kódy používané pro náhradní pády spadají do BMP a nejsou jim přiřazeny žádné znaky.
 
=== Skupiny Unicode ===
Řádek 102 ⟶ 113:
* UTF-16 (UTF-16BE, UTF-16LE)
* UTF-32 (UTF-32BE, UTF-32LE)
* [[GB 18030|GB18030]] - čínský standard, není definováno v normě Unicode, ale je na Unicode vázané (znakový repertoár je shodný s Unicode)
 
Kódování UTF-32, UTF-16 a UCS-2 mají každá své varianty podle používaného [[endianita|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.
Řádek 124 ⟶ 135:
 
==== UCS-2 ====
Kódování [[UCS-2]] bylokóduje vyřazenokaždý zeznak standarduz vBMP rocepomocí 1996,šestnáctibitového kdyčísla; vzniklaznaky verzemimo 2.0BMP standardunelze Unicode,v kteráUCS-2 zachováváreprezentovat, zpětnouproto kompatibilitu.je UCS-2 kódujeomezená znakyznaková zsada, BMP shodněpodobně jako UTF-16,ASCII. alePři nepodporujereprezentaci ''surrogateproudem pairs''oktetů a(bajtů) znaky mimo BMP v něm vůbec nelze reprezentovat. Podobně jako u UTF-16 zde existujívarianty big endian a little endian varianty. NaProud UCS-2dat můžememůže pohlížetbýt jakozahájen na omezenou znakovou sadu, podobně jako ASCIIBOM. ProUCS-2 uloženíbylo datvyřazeno seze využívástandardu posloupnostv dvoubajtovýchroce částí1996. Výhodou UCS-2 oproti UTF-8 nebo UTF-16 je konstantní délka znaku a snadné zjišťování počtu znaků v řetězci. Při přenosu znaků z BMP je UCS-2 nerozlišitelné od UTF-16.
 
==== 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]].
 
== Využití ==