Unicode

Unicode
Kódovania
UTF-7 · UTF-8 · CESU-8 · UTF-16/UCS-2 · UTF-32/UCS-4 · UTF-EBCDIC · SCSU · Punycode · GB18030

UCS
Obojsmerný text
BOM
Han zjednotenie
Unicode a HTML
Unicode a e-mail
z    

Unicode je medzinárodný štandard, ktorého cieľom je definovať kódovaciu schému schopnú reprezentovať väčšinu znakov používaných v písaných jazykoch spolu s inými symbolmi.

Napriek technickým problémom, obmedzeniam a kritike sa zo štandardu Unicode stala dominantná kódovacia schéma používaná pri internacionalizácii softvéru a viacjazyčných prostredí.

Operačné systémy Microsoft Windows NT a odvodené verzie Windows 2000 a Windows XP používajú Unicode, presnejšie UTF-16, na internú reprezentáciu textu. Operačné systémy UNIXového typu ako GNU/Linux, BSD a Mac OS X prijali Unicode, presnejšie UTF-8, ako základ pre reprezentáciu viacjazyčného textu.

Unicode je štandard pre univerzálne kódovanie znakov pre počítače. Toto kódovanie navrhla nezisková organizácia s názvom The Unicode Consortium, ktorej cieľom bolo vytvoriť jednotnú sadu znakov UCS (Universal Character Set), ktorá by nahradila množstvo rozdielnych sád znakov používaných v jednotlivých krajinách. Tento štandard publikovala v knihe The Unicode Standard. Okrem znakovej sady, ktorá bola tiež normalizovaná ako ISO/IEC 10646, dokument obsahuje i ďalšie veci súvisiace s počítačovým písmom (spôsob dekompozície, vykresľovania, metódy kódovania…). Tento štandard bol implementovaný do moderných operačných systémov a jeho modifikácia UTF (Unicode Transformation Format) je implementovaná v jazykoch XML a Java.

Vývoj štandardu

Vznik jednotného kódu znakov podmienila existencia množstva znakových sád. Znakové sady sa líšili nielen pre jednotlivé krajiny, ale i v rámci jednej z krajín existovalo viacero znakových sád. Všetky znakové sady boli navrhnuté na základe americkej normy ASCII, ktorá pevne určovala prvých 128 znakov sady a zvyšných 128 sa líšilo v závislosti od krajiny. Na Slovensku sa najčastejšie používali (a ešte stále používajú) kódy ISO 8859-2, známy tiež ako Latin-2 alebo CP 852, ktorý definovala medzinárodná organizácia ISO, ďalej kód ANSI 1250, známy tiež ako Windows 1250, definovaný americkou organizáciou, ale najčastejšie používaný bol kód Kamenických, známy tiež ako CP 895, ktorý nebol štandardizovaný. Podobné to bolo i v iných krajinách. Celý problém bol v tom, že kód ASCII bol navrhnutý tak, že jednému znaku zodpovedal jeden bajt. Takéto kódovanie umožňovalo vytvárať sady s 256 znakmi. Kódovanie Unicode je navrhnuté pomocou dvoj-bajtového a troj-bajtového kódovania znakov, čo umožňuje kódovať oveľa viac znakov. Štandard je navrhnutý tak, že všetky možné znaky rozdeľuje do sedemnástich dvoj-bajtových rovín s poradovými číslami od 0 po 16 (hexadecimálne od 00 po 10). Každá z týchto rovín teda kóduje 216 = 65 536 znakov. Takéto rozdelenie umožňuje definovať až 17 × 216 = 1 114 112 znakov. Poradové čísla znakov sa v Unicode označujú hexadecimálne U+hhhhhh, kde prvá hodnota "hh" značí rovinu a druhá hodnota "hhhh" značí poradie v príslušnej rovine. Limit 17 rovín bol zvolený kvôli UTF-16 kódovaniu Unicode, keďže to dokáže kódovať iba 220 znakov (16 rovín) + nultú rovinu, zatiaľco UTF-8 aj s obmedzením na 4 bajty dokáže kódovať 221 znakov (až 32 rovín). Roviny sú následne rozdelené do tzv. blokov, logicky usporiadaných celkov (znakových sád), ktoré na rozdiel od rovín nemajú pevnú veľkosť. Prvá verzia štandardu – Unicode 1.0.0 – vznikla v októbri 1991, súčasná verzia štandardu je už Unicode 10.0 z roku 2017. Táto definuje viac ako 136 tisíc znakov, čo je približne iba 12 % zo všetkých možných. Unicode 10.0 obsahuje 280 blokov (rozprestrených cez niektoré roviny) pokrývajúcich až 25% adresného priestoru pre 1 114 112 znakov (bloky tak nemajú priradené a vyčerpané všetky pozície). Najmenšie bloky majú iba 16 znakov (v Unicode 10.0 je takých až 13 blokov) a najväčšie bloky obsahujú 65 536 znakov, sú to celé roviny s poradovými číslami 15 a 16.

Iné jazyky
Afrikaans: Unicode
Alemannisch: Unicode
አማርኛ: ዩኒኮድ
العربية: يونيكود
অসমীয়া: ইউনিক’ড
asturianu: Unicode
azərbaycanca: Unicode
Boarisch: Unicode
беларуская: Унікод
беларуская (тарашкевіца)‎: Юнікод
български: Уникод
বাংলা: ইউনিকোড
brezhoneg: Unicode
bosanski: Unicode
català: Unicode
ᏣᎳᎩ: ᏳᏂᎪᏛ
کوردی: یوونیکۆد
čeština: Unicode
Чӑвашла: Юникод
Cymraeg: Unicode
dansk: Unicode
Deutsch: Unicode
Ελληνικά: Γιούνικοντ
English: Unicode
Esperanto: Unikodo
español: Unicode
eesti: Unicode
euskara: Unicode
فارسی: یونی‌کد
suomi: Unicode
français: Unicode
Gaeilge: Unicode
galego: Unicode
ગુજરાતી: યુનિકોડ
עברית: יוניקוד
हिन्दी: यूनिकोड
hrvatski: Unikod
magyar: Unicode
Հայերեն: Յունիկոդ
interlingua: Unicode
Bahasa Indonesia: Unicode
Ilokano: Unicode
íslenska: Unicode
italiano: Unicode
日本語: Unicode
Basa Jawa: Unicode
ქართული: უნიკოდი
қазақша: Юникод
ಕನ್ನಡ: ಯುನಿಕೋಡ್
한국어: 유니코드
कॉशुर / کٲشُر: यूनिकोड
kurdî: Unicode
Кыргызча: Юникод
lietuvių: Unikodas
latviešu: Unikods
मैथिली: युनिकोड
олык марий: Unicode
മലയാളം: യൂണികോഡ്
монгол: Юникод
मराठी: युनिकोड
Bahasa Melayu: Unicode
မြန်မာဘာသာ: ယူနီကုဒ်
Plattdüütsch: Unicode
नेपाली: युनिकोड
नेपाल भाषा: युनिकोड
Nederlands: Unicode
norsk nynorsk: Unicode
norsk: Unicode
occitan: Unicode
ਪੰਜਾਬੀ: ਯੂਨੀਕੋਡ
polski: Unikod
português: Unicode
română: Unicode
русский: Юникод
संस्कृतम्: युनिकोड
саха тыла: Юникод
Scots: Unicode
srpskohrvatski / српскохрватски: Unikod
සිංහල: යුනිකෝඩ්
Simple English: Unicode
slovenščina: Unicode
shqip: Unicode
српски / srpski: Unikod
Basa Sunda: Unicode
svenska: Unicode
తెలుగు: యూనికోడ్
тоҷикӣ: Юникод
Tagalog: Unikodigo
Türkçe: Unicode
ئۇيغۇرچە / Uyghurche: Unicode
українська: Юнікод
اردو: یونیکوڈ
Tiếng Việt: Unicode
walon: Unicôde
吴语: Unicode
მარგალური: იუნიკოდი
ייִדיש: יוניקאד
Yorùbá: Unicode
中文: Unicode
文言: 萬國碼
Bân-lâm-gú: Unicode
粵語: 統一碼