Unikód
Unikód je mezinárodní úroveň jehož cíl má specifikovat kódové lícování každý charakter potřeboval každým psaným lidským jazykem k jeden jedinečný celočíselné číslo, volal bod kódu. To je explicitní cíl unikóda zrušit tradiční charakter encodings takový jak ti vymezili ISO 8859 standard, který být použit v různých zemích světa, ale být velmi neslučitelný spolu navzájem.
Unikód v záměru zakóduje základní charakteristiky a ne glyphs varianty pro takové charaktery.
Unikód chce poskytovat bod kódu pro každou postavu, ale ne pro každý glyph -- nebo dát toto v více obyčejný (ale méně přesný) požadavky, unikód chce poskytovat jedinečné číslo pro každý dopis, bez ohledu na typografické variace používané tiskárnami.
Tento jednoduchý cíl je velmi komplikován dalším cílem, který má poskytovat bezztrátovou konverzi mezi různé existující encodings.
| Tabulka s obsahem |
| 1 unikódové konsorcium 2 repertoár 3 Encodings 4 rozmanitý 5 unikóda na webu 6 fontů unikóda 7 unikódové revizní historie 8 externích spojení |
Kalifornie- umístěný Konsorcium unikóda nejprve vydávalo “standard unikóda” v 1991, a pokračuje vyvinout standardy založené na tom originálním díle. Unikód byl vyvinut v spojení s Mezinárodní organizací pro standardizaci a to sdílí jeho repertoár charakteru s ISO 10646. Unikód a ISO 10646 být rovnocenný jak charakter encodings, ale unikódový standard obsahuje hodně více informací pro implementers, krytina, do hloubky, témata takový jako bitové kódování, verifikacea vizualizace, a vyjmenovávat množství vlastností charakteru, včetně ti potřebovali pro BiDi podporu. Dva standardy také mají nepatrně odlišnou terminologii. Repertoár
Rezervy unikóda 1114112 (= 220+216) body kódu, a současně přiřadí charaktery k více než 96000 ti kód poukáže. Prvních 256 kódů přesně odpovídá těm ISO 8859-1, nejpopulárnější 8-kousl kódování charakteru v “západním světě”; jako výsledek, prvních 128 charakterů je také totožné k ASCII.
Unikódový kódový prostor pro charaktery je rozdělen do 17 “letadla” a každé letadlo má 65536 kód poukáže. První letadlo (letadlo 0), Základní vícejazyčné letadlo (BMP), je kde většina charakterů bylo přiřazené, doposud. BMP obsahuje charaktery pro téměř všechny moderní jazyky, a velké množství speciálních znaků. Většina z přiděleného kódu důvody k BMP jsou používány zakódovat CJK charaktery.
Dva více letadel je užité na “grafické” charaktery. Letadlo 1, Doplňkové vícejazyčné letadlo (SMP) je většinou užitý na historické zápisy takový jak Lineární B, ale je také užitý na hudební a matematické symboly. Letadlo 2, Doplňkové Ideographic letadlo (usrknutí) je používáno pro asi 40000 vzácný Charaktery Číňana to být většinou historický, ačkoli tam jsou někteří moderní. Letadlo 14 současně obsahuje některé non-doporučil jazykové značkové charaktery a některé variační výběrové charaktery. Letadlo 15 a letadlo 16 být otevřený pro nějaké soukromé použití.
Tam je hodně diskuse mezi CJK specialisty, zvláště japonské, o desirability a technické hodnotě”Han sjednocení” proces mapoval rozmanitého Číňana a japonské znakové sady do jediného souboru sjednoceného glyphs. (viz Čínské charakterové kódování)
Čepice ~ 220 body kódu existuje aby udržoval slučitelnost s UTF-16 kódovat, který může jen oslovit ten rozsah (vidět dolů). 10 % využití unikódového kódového prostoru navrhne, že toto ~ 20 limit kousku je nepravděpodobný být podáván v blízké budoucnosti.
Doposud, to bylo jen říkal, že unikód je znamená přiřadit jedinečné číslo pro všechny charaktery používané lidmi v psaném jazyce. Jak tato čísla jsou uložena ve zpracování textu je jiný záležitost; problémy vyplývají ze skutečnosti, že hodně software v západ má doposud been psaný zabývat se 8-charakter kousku encodings jen a podpora unikóda jen byla přidaná pomalu v uplynulých letech.
Vnitřní logika hodně 8-kousl software dědictví typicky povolí jen 8 kousků pro každou postavu, dělat to nemožný používat víc než 256 bodů kódu bez zvláštního zpracování. Několik mechanismů proto bylo navrhnuté realizovat unikód; který jeden je vybrán závisí na dostupném skladovacím prostoru, zdrojové kódové kompatibilitě a součinnosti s jinými systémy.
Nejjednodušší možný způsob, jak uložit všechny možný 220+216 Kód unikóda poukáže je používat 32 kousků pro každou postavu, to je, čtyři bajty -- proto, toto kódování je odkazoval se na jak UTF-32 unikódem a UCS-4 v ISO/IEC 10646 dokumentace. Hlavní problém s touto metodou je že to používá čtyřikrát doba tradičních encodings, který je proč to je zřídka užité na externí paměť. Nicméně, náležitý k jeho jednoduchosti, mnoho programů bude používat 32 encodings kousků vnitrostátně když zpracuje unikód.
UTF-16 je různě dlouhé kódování, které používá jeden jeden nebo dvě 16-ti bitová slova, projevit na většině platformách jak 2 nebo 4 8-bajty kousku, pro každou postavu.
Objednávka bajtu je postižená hardwarem platformy, tak celý UTF-16 datové proudy jsou vyžadovány začít nulou-šířka ne-rozbít charakter prostoru (U + FEFF), který není považován za část textových dat ale je právě Bajt objednávat značku (BOM), poskytovat souhlasnou preambuli (bajty FE FF nebo FF FE) to umožní dekodéru znát potoční bajtové pořadí. Daný unlikelihood těchto bajtů objevit se v hlavě non-UTF-16 dělit, UTF-16 potoky jsou účinně self-identifikovat. Tam jsou také dvě varianty UTF-16 to zamezit použití BOM: UTF-16LE a UTF-16BE.
UTF-16 dovolí charaktery v BMP být zakódován přímo jak jeden 16-ti bitové kódové hodnoty. Charaktery za BMP jsou zakódovány, zatímco pár 16-ti bitových kódových hodnot kreslených od rozsahu rezervovaného kódu ukazuje, v D800-DFFF rozsah, to nebyli individuálně zadal charakterům.
Další obyčejné kódování je UTF-8, který je také různě dlouhé kódování. Prvních 128 bodů kódu je reprezentováno jedním bajtem, a být rovnocenný k ASCII. Reprezentace vyšších kódových bodů vyžaduje dva k šesti bajtům.
UTF-8 má několik výhod, obzvláště když přidá podporu pro unikód k existujícímu softwaru. Pro jednoho, žádné změny jsou vyžadovány pro doprovodný ASCII jediný. Secondly, většina funkcí od standardní knihovny C programovací jazyk to tradičně byli užití na zpracování charakteru (takový jak strcmp pro srovnání a triviální třídění) ještě pracovat, protože oni operují 8-hodnoty kousku. (kontrastem, k podpoře 16 - nebo 32 bitové encodings zmínily se o nahoře, rozlehlé části staršího softwaru by musely být přepsán.) třetina, pro většinu textů, které používají relativně nemnoho non-ASCII znaky (to je, texty ve většině západních jazycích), kódování je velmi prostor-účinný protože to bude vyžadovat jen mírně víc než 8 kousků na charakter.
Přesná mechanika UTF-8 být takto (prefixed čísel se 0x jsou v hexadecimální notaci):
- Pro skalární hodnotu méně než 0x80, používat jeden bajt se stejnou skalární hodnotou.
- Pro skalární hodnotu méně než 0x800, používat dva bajty, kde první je 0xC0 plus číslo představované 7th-11th nejméně významné bity, zatímco sekunda je 0x80 plus 1st-6th nejméně významné bity.
- Pro skalární hodnotu méně než 0x10000, používat tři bajty. První je 0xE0 plus 13th-16th LSBs, druhé 0x80 plus 7th-12th LSBs, a třetí 0x80 plus 1st-6th LSBs.
- Pro skalární hodnotu méně než 0x200000, používat čtyři bajty, jmenovitě 0xF0 plus 19th-21st LSBs; 0x80 plus 13th-18th; 0x80 plus 7th-12th; a 0x80 plus 1st-6th LSBs.
Jako důsledek nad detaily, následující vlastnosti multi-sekvence bajtu myslí si:
- nejvýznamnější bit jeden-charakter bajtu je vždy
0. - Nejvíce významné kousky prvního bajtu multi-sekvence bajtu určovat délku sekvence. Tyto nejvýznamnější bity jsou
110pro dva-sekvence bajtu;1110pro tři-sekvence bajtu, etc. - Zbývající bajty v multi-sekvence bajtu mít
10jako jejich dva nejvýznamnější bity.
Nejméně obyčejné kódování je pravděpodobně UTF-7. Pantomima technicky vyžaduje to kódování poslalo e-mail je ASCII, tak nějaký e-mail, který používá kódování unikóda je neplatný. Nicméně, toto omezení je všeobecně ignorováno. UTF-7 dovolí poště používat unikód ale také následovat standardy. Nějaký standardní ASCII znak je zakódovaný jak je, nějaký charakter nad 128 ASCII znaky je zakódován používat příkazovou sekvenci ' + ' charakter následovaný charakterem unikóda zakódovaným v Base64, a skončil ' - '. Doslovný ' + ' charaktery jsou zakódovány jak ' + - '. Rozmanitý
Standard unikóda také zahrnuje množství příbuzných položek, takový jak vlastnosti charakteru, textové normalizační formy a oboustranný displej objednají (pro správnou ukázku textu obsahovat oba pravý-k-levé skripty, takový jako arabština nebo hebrejština, a odešel-k-pravé skripty).
V roce 1997 návrh byl předstíral, že zakóduje charaktery Klingon jazyka v letadle 1 ISO/IEC 10646-2. Návrh byl odmítnut v roce 2001 jak “nevhodný pro kódování.” elvish píší Tengwar od J. R. R. Tolkien' s Střední zemské nastavení bylo navrhováno pro zahrnutí v roce 1993. Unikód na webu
Nedávné internetové prohlížeče zobrazují internetové stránky používat unikód jestliže vhodný font je instalován (vidět Unikód a HTML).
Ačkoli pravidla syntaxe mohou ovlivnit objednávku ve kterém charaktery mají dovoleno se objevit, oba HTML 4.0 a XML 1.0 dokumenty jsou, samozřejmě, složený z charakterů od celého rozsahu unikódových kódových bodů, bez jediný hrst zamítnutých řídících znaků a permanentně-unassigned kód zaměří D800-DFFF a FFFE-FFFF. Tyto charaktery projeví jeden přímo jako bajty shodovat se ke kódování dokumentu, jestliže kódování podporuje je nebo oni mohou být psáni jako odkazy číselného znaku založené na unikóde charakteru bod kódu, jak dlouho jak kódování dokumentu podporuje číslice a požadované symboly psát odkazy (všechny encodings schválené pro použití na internetu dělají). Například, odkazy ΔЙקم๗ぁ叶葉냻(nebo stejný numerické hodnoty vyjadřovaly v hexadecimální, s jako předpona) displej na vašem prohlížeči jak?,?,?,?,?,?,?,? a? -- jestliže vy máte pořádné fonty, tyto symboly vypadají jako Řecké velké písmeno “delta”, Cyrilské velké písmeno “krátký já”, Arabský dopis “Meem”, Hebrejský dopis “Qof”, Thajský číslice 7, Japonec Hiragana “#rquote, zjednodušení Číňani ”List”, tradiční Číňani “listují”, a Korejský Han-geul slabika “Nyrh”, příslušně.
Volný a maloobchodně fonty založené na unikóde jsou obyčejné, protože nejprve TrueType a nyní OpenType používá unikód. Tyto formáty fontu mapují unikódové kódové důvody k glyphs.
Tam jsou tisíce fontů na trhu, ale pravděpodobně méně než polovina-fonty tuctu pokoušejí se podporovat většinu unikódového charakterového repertoáru. Místo toho, unikód založil fonty typicky zaměřit se na doprovodný jen základní ASCII a zvláštní skripty nebo soubory charakterů nebo symbolů. Tam je několik důvodů pro toto: aplikace a dokumenty zřídka potřebují skýtat charaktery od víc než jeden nebo dva psací systémy; fonty inklinují být prasata zdroje v počítačových prostředích; a operační systémy a aplikace stanou se zvýšeně inteligentní s ohledem na získání glyph informace od oddělených fontových souborů, zatímco oni jsou potřebováni. Dále, to je význačný úkol k designu souhlasný soubor instrukcí vizualizace pro tens tisíců glyphs; takový podnik projde kolem bodu klesajících návratů.
- 1991 unikód 1.0
- 1993 unikód 1.1
- 1996 unikód 2.0
- 1998 unikód 2.1
- 2000 unikód 3.0
- 2001 unikód 3.1
- 2002 unikód 3.2
- 2003 unikód 4.0
Externí odkazy
- Konsorcium unikóda
- Unikódové verze: 3.1, 3.2, 4.0
- Alan Woodovy unikódové prostředky (obsahuje seznamy textových procesorů se schopností unikóda)
- Unikódové kódové diagramy (PDF)
- UTF-8, UTF-16, UTF-32 diagramy kódu
- Databáze dopisu
- Absolutní minimum každý vývojář softwaru absolutně, nesporně muset vědět o unikóde a znakových sadách (žádné omluvy!)
- Projektovat UTF-8, evangelizovat unikódovou podporu ve volném softwaru
- Unikódové TTF fonty: Code2000: povolit info a spojení stahování, Junicode: povolit info a spojení stahování, Titus Cyberbit základní: povolit info a stáhnout spojení
- Branec registr unikóda (projekt normalizovat část Pua pro použití s umělými skripty)