Unicode: Porovnání verzí

Smazaný obsah Přidaný obsah
m Editace uživatele 173.249.55.165 (diskuse) vráceny do předchozího stavu, jehož autorem je InternetArchiveBot
značka: rychlé vrácení zpět
m Robot: oprava RFC; kosmetické úpravy
Řádek 1:
[[Soubor:Unicode logo.svg|náhled|vpravo|180px|Logo Unicode konsorcia]]
'''Unicode''' ({{Vjazyce|en}} {{Cizojazyčně|en|''Unicode''}}) je [[technická norma]] pro oblast [[Výpočetní technika|výpočetní techniky]] definující konzistentní [[Znaková sada|kódování]] pro reprezentaci a&nbsp;zpracovávání [[Znak (počítače)|textů]] použitelné pro většinu [[Písmo|písem]] používaných v&nbsp;současnosti na&nbsp;Zemi. Unicode je vyvíjen v&nbsp;součinnosti s&nbsp;[[ISO/IEC 10646]] a&nbsp;je publikován elektronicky jako ''The Unicode Standard''. Nejnovější verze obsahuje repertoár více než 120&nbsp;000&nbsp;[[znak (počítače)|znaků]] pokrývajících 129&nbsp;moderních a&nbsp;historických [[Písmo|písem]] a&nbsp;mnoho sad symbolů. Standard sestává ze sady tabulek pro vizuální referenci, popisu metod kódování, sady referenčních datových [[soubor]]ů a&nbsp;dalších položek, jako například vlastností znaků, pravidel pro [[Unicode normalizace|normalizaci]] textů, dekompozici, [[Abecední řazení|řazení]], vykreslování a&nbsp;zobrazování [[obousměrný text|obousměrného textu]] (pro správné zobrazení textu obsahující písma psaná zprava doleva i&nbsp;zleva doprava, jako například [[arabské písmo|arabské]] a&nbsp;[[hebrejské písmo]]).<ref>{{Citace elektronické monografie
| titul = The Unicode Standard: A Technical Introduction
Řádek 7:
Úspěch Unicode v&nbsp;unifikaci znakových sad vedl k&nbsp;jeho rozšíření a&nbsp;převládajícímu používání pro [[Internacionalizace a lokalizace|internacionalizaci a lokalizaci]] [[Software|počítačového softwaru]]. Unicode je implementován mnoha technologiemi, včetně moderních [[operační systém|operačních systémů]], [[XML]], [[Java (programovací jazyk)|programovacím jazykem Java]] a&nbsp;[[.NET]] Frameworkem firmy [[Microsoft]].
 
Unicode definuje několik způsobů reprezentace textů různými [[znakový kód|znakovými kódy]]. K&nbsp;nejpoužívanějším kódováním patří [[UTF-8]], [[UTF-16]] a zastaralé [[UCS-2]]. UTF-8 používá jeden [[bajt]] pro libovolný [[ASCII]] znak, přičemž všechny ASCII znaky mají v UTF-8 stejné kódové hodnoty jako ASCII a dva až čtyři bajty pro jiné znaky. UCS-2 používá 16bitové kódové jednotky (dva [[oktet (informatika)|8bitové bajty]]) pro každý znak, ale neumožňuje kódovat všechny znaky v&nbsp;aktuálním standardu Unicode. UTF-16 je rozšíření UCS-2, které pomocí dvou 16bitových jednotek (4&nbsp;×&nbsp;8&nbsp;bit) umožňuje kódovat všechny znaky z Unicode. V Číně se používá kódování [[GB 18030|GB18030]], které přebírá celý znakový repertoár Unicode, proto je také jedním ze způsobů kódování Unicode. Mapování GB18030 na UTF-32 je však netriviální (potřebuje převodní tabulku).
 
Umožňuje současně používat různá písma při vícejazyčném zpracování textu v počítači a kóduje široké portfolio znaků pro profesionální zpracování textů v prakticky jakémkoli moderním i historickém jazyce. Nevýhodou unicode může být složitější zpracování, stejný text zabírá více prostoru na disku nebo v operační paměti počítače. Ovšem výhody univerzální znakové sady drtivě převažují, což je vidět mj. na tom, že starší osmibitové znakové sady jsou dnes definované jako podmnožiny Unicode.
 
== Historie ==
Řá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
| autor =
| odkaz na autora =
| spoluautoři =
| titul = Unicode Standard 7.0: přibližně 250 nových „smajlíků“
| periodikum = Root.cz
Řádek 40:
| url = http://www.root.cz/zpravicky/unicode-standard-7-0-priblizne-250-novych-smajliku/
| datum vydání = 2014-06-17
| ročník =
| číslo =
| strany =
| issn = 1212-8309
| datum přístupu = 2014-08-26
| 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 53:
}}
</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
 
== Principy standardu Unicode ==
Řádek 71:
 
== 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í multijazyková 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.
 
=== Skupiny Unicode ===
Řádek 96:
=== Kódování ===
{{Kódování Unicode}}
Existuje několik různých způsobů, jak [[kód]]ovat řetězce složené ze znaků (kódových bodů) Unicode. Unicode řetězec je sekvencí kódových bodů Unicode. Způsob jak tuto sekvenci uložit do paměti počítače nebo serializovat na disk se označuje jako kódovací znakové schéma (Character Encoding Scheme), které zahnruje způsob kódování znaků a způsob jejich serializace do sekvence bajtů. Základní kódování Unicode jsou:
* UTF-8
* UTF-16 (UTF-16BE, UTF-16LE)
Řádek 119:
Použití BOM jako příznaku endianity je u UTF-8 zbytečné (pořadí bajtů je jednoznačně určeno), BOM však může posloužit pro snadnou detekci, že se jedná o UTF-8.
 
UTF-8 je popsané v ISO 10646-1:2000 Annex D a také v [[rfc:3629|RFC 3629]].
 
==== UCS-2 ====
Kódování [[UCS-2]] bylo vyřazeno ze standardu v roce 1996, kdy vznikla verze 2.0 standardu Unicode, která zachovává zpětnou kompatibilitu. UCS-2 kóduje znaky z BMP shodně jako UTF-16, ale nepodporuje ''surrogate pairs'' a znaky mimo BMP v něm vůbec nelze reprezentovat. Podobně jako u UTF-16 zde existují big endian a little endian varianty. Na UCS-2 můžeme pohlížet jako na omezenou znakovou sadu, podobně jako ASCII. Pro uložení dat se využívá posloupnost dvoubajtových částí. 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.
 
==== Další kódování ====