Unicode je počítačový standard, který umožňuje výměnu textů v různých jazycích na globální úrovni. Je vyvinut společností Unicode Consortium , jejímž cílem je kódování psaného textu tak, že libovolnému znaku v jakémkoli systému psaní bude jednotně přiřazeno jméno a číselný identifikátor bez ohledu na počítačovou platformu nebo použitý software .
Tato norma souvisí s normou ISO / IEC 10646 popisuje tabulku ekvivalentních znaků. Nejnovější verze, Unicode 13.0 , byla vydána vbřezen 2020.
Plně kompatibilní s univerzální znakovou sadou (UIC) normy ISO / IEC 10646 ji standard Unicode rozšiřuje přidáním kompletního modelu reprezentace a zpracování textu, který dává každému znaku sadu vlastností (které mohou být buď pro některé standardizované a stabilizované v všechny verze Unicode, kde byla postava zakódována, nebo informativní pouze s doporučením o jejich použití, které se může vyvíjet podle nových nalezených potřeb). Tyto vlastnosti přesně popisují sémantické vztahy, které mohou existovat mezi několika po sobě následujícími znaky textu, a umožňují standardizovat nebo doporučit algoritmy zpracování, které co nejvíce zachovávají sémantiku transformovaných textů. Unicode si klade za cíl zajistit, aby byl stejný text použitelný shodně na zcela odlišných počítačových systémech.
Standard Unicode se skládá z repertoáru 143 859 znaků, který zahrnuje více než 150 skriptů, sadu kódových tabulek pro vizuální referenci, metodu kódování a několik standardních kódování znaků, vlastnosti znaku výčtu (velká písmena, malá písmena, APL , symboly, interpunkční znaménka) , atd. ) ze sady datových souborů referenčního počítače a řadu souvisejících prvků, jako jsou pravidla normalizace obousměrného rozkladu, třídění, rendering a zobrazovací pořadí (pro správné zobrazení textu, který obsahuje i zprava doleva znaky skriptu, například arabština a hebrejština a zleva doprava).
V praxi Unicode plně zahrnuje ISO / IEC 10646 , protože ten standardizuje pouze jednotlivé znaky tím, že jim přiřadí jméno a normativní číslo (nazývané bod kódu ) a velmi omezený informativní popis, ale žádné zpracování nebo specifikace nebo doporučení pro jejich použití při psaní skutečných jazyků, které přesně definuje pouze standard Unicode. ISO / IEC 10646 je normativně odkaz na části standardu Unicode (včetně obousměrných algoritmus a charakterových vlastností (v) ); Unicode je také de facto standard pro zpracování textu a slouží jako základ pro mnoho dalších standardů.
Psané jazyky:
[L] ogografický a [S] yllabický
Abjad (semitské jazyky)
Unicode, jehož první publikace sahá až do Říjen 1991, byl vyvinut s cílem nahradit používání národních kódových stránek .
Tyto kódové stránky měly v minulosti nějaké problémy. Například na 3270 terminálech pracujících v EBCDIC : když elektronická poznámka obsahovala znak „měny“, stejný text omezující výdaje v amerických dolarech pro amerického čtenáře by zobrazil na britské obrazovce stejnou částku v librách šterlinků , protože měna znamení se v každé ze dvou zemí lišilo.
V praxi ještě nejsou k dispozici všechny systémy psaní, protože dokumentární výzkumná práce se specialisty se může ukázat jako nezbytná pro vzácné znaky nebo málo známé systémy psaní (protože například zmizely).
Jsou však zastoupeny skripty nejpoužívanější ve světě, stejně jako pravidla týkající se sémantiky postav , jejich složení a toho, jak tyto různé systémy kombinovat. - Například, jak vložit psací systém zprava doleva do psacího systému zleva doprava ( obousměrný text ).
Ve své podobě UTF-8 nabízí Unicode určitou interoperabilitu s ASCII kódem .
Standard Unicode definuje požadavky na hodnocení shody implementace procesu (nebo softwaru) s Unicode . Tyto požadavky se týkají zejména (ve verzi 4.0 ):
Tyto požadavky umožňují podporu pro podmnožinu Unicode.
Zatímco ISO / IEC 10646 definuje stejnou znakovou sadu jako Unicode, rozdíl mezi ISO / IEC 10646 a Unicode je způsoben hlavně požadavkem na nadměrnou shodu poskytovaným Unicode.
Unicode je v roce 2016 předním standardem pro kódování počítačových znaků. Používá se pro interoperabilitu softwaru a umožňuje například kopírovat texty pomocí znaků různých abeced mezi různými softwary, i když pro ně nejsou speciálně navrženy (například program se znaky APL v textu LibreOffice nebo v e-mailu v Gmailu ). Ne všechny texty Unicode jsou však kódovány stejně. V závislosti na přijaté standardizaci Unicode lze stejný grafický znak někdy kódovat různými způsoby. Některé texty používat NFC konvenci , jiné odborníky NFD konvence , atd Standard nezakazuje smíchání několika konvencí ve stejném textu. Totéž platí pro software.
Tuto koexistenci několika způsobů psaní stejné věci využili hackeři v roce 2000 tím, že jim umožnili obejít filtry: hackeři obcházeli zákazy určitých řetězců považovaných za nebezpečné jednoduše tím, že je zakódovali do jiné podoby., Neobvyklejší, a proto někdy nefiltrované.
Unicode reaguje na tato omezení poskytnutím pojmu kanonické ekvivalence .
Práce na Unicode je paralelní a synchronizovaná s prací na standardu ISO / IEC 10646, jehož cíle jsou stejné. ISO / IEC 10646 , mezinárodní norma zveřejněna ve francouzštině a angličtině, která nestanovuje pravidla kompozice znaků nebo sémantické vlastnosti postav.
Unicode však řeší problém malých a velkých písmen , abecedního řazení a kombinace přízvuků a znaků . Od Unicode verze 1.1 a ve všech následujících verzích mají znaky stejné identifikátory jako identifikátory normy ISO / IEC 10646 : adresáře jsou udržovány paralelně, identické během jejich finální standardizace, přičemž tyto dva standardy jsou aktualizovány téměř současně. Dva standardy Unicode (od verze 1.1 ) a ISO / IEC 10646 zajišťují úplnou zpětnou kompatibilitu: veškerý text, který odpovídá dřívější verzi, musí zůstat kompatibilní s novějšími verzemi.
Znaky Unicode verze 3.0 jsou tedy znaky normy ISO / IEC 10646: 2000 . Verze 3.2 Unicode zařadil 95,221 znaky, symboly a směrnic.
Verze 4.1 Unicode, aktualizovánolistopadu 2005, obsahuje:
tj. celkem téměř 245 000 kódových bodů přidělených v prostoru, který může obsahovat 1 114 112 různých kódů.
Zdá se však, že existují určité problémy s kódováním čínských znaků kvůli sjednocení ideografických sad používaných v různých jazycích s mírně odlišnou a někdy smysluplnou kaligrafií, ale řeší je Unicode, který definoval selektory. otevřel standardní sekvenční registr, který je používá.
Verze | Datum publikace | Nové postavy |
---|---|---|
1.0.0 | Říjen 1991 | |
1.0.1 | Červen 1992 | |
1.1 | Červen 1993 | |
2.0 | Červenec 1996 | |
2.1 | Květen 1998 | |
3.0 | Září 1999 | |
3.1 | Březen 2001 | |
3.2 | Březen 2002 | |
4.0 | Dubna 2003 | |
4.1 | Březen 2005 | |
5.0 | července 2006 | |
5.1 | Březen 2008 | |
5.2 | října 2009 | |
6.0 | února 2011 | |
6.1 | 31. ledna 2012 | |
7.0 | 16. června 2014 | 2 834 nových postav, včetně emodži . |
8.0 | 17. června 2015 | 7 716 znaků včetně mnoha emodži. |
9.0 | 21. června 2016 | 7 500 nových postav (včetně 72 emodži). |
10.0 | 20. června 2017 | 8 518 nových postav (včetně 56 emodži). |
11.0 | 5. června 2018 | 684 nových postav (včetně 66 emodži). |
12.0 | 5. března 2019 | 554 nových postav. |
13.0 | 10. března 2020 | 5 390 nových postav |
Unicode je definován v souladu s vrstvami modelu ( technická poznámka Unicode n o 17 ). Jiné standardy obvykle nerozlišovaly mezi znakovou sadou a fyzickou reprezentací. Zde jsou uvedeny vrstvy počínaje od nejvyšší (nejdále od stroje).
Adresář abstraktních postav ( repertoár abstraktních postav )Nejvyšší vrstva je definice znakové sady. Například Latin-1 má 256 znakovou sadu, zatímco Unicode v současné době standardizuje téměř 110 000 znaků. Unicode navíc každému z těchto znaků přiřadí název.
Seznam znaků s jejich jmény proto tvoří aplikační vrstvu Unicode.
Například znak Ç má název „Latinské velké písmeno c cedilla“.
Tato definice je zcela identická s definicí ISO / IEC 10646, která schvaluje jakékoli rozšíření adresáře. Unicode používá v textu své normy pouze normativní názvy v angličtině, ale norma ISO / IEC 10646 je publikována ve dvou stejně normativních jazycích. Názvy v angličtině a francouzštině jsou tedy standardizované.
Ve skutečnosti se jakékoli rozšíření adresáře nyní provádí společně mezi pracovní skupinou odpovědnou za ISO / IEC 10646 ( JTC1 / SC2 / WG2 , jejíž hlasujícími členy jsou pouze národní normalizační orgány zúčastněných zemí nebo jejich oficiální zástupce), a Technický výbor Unicode UTC (jehož hlasujícími členy může být jakákoli soukromá nebo veřejná zájmová organizace nebo dokonce vláda, která se připojila a platí roční poplatek za účast na těchto rozhodnutích).
Kódovaná znaková sada ( kódovaná znaková sada )Zde je do předchozí tabulky přidáno číslo spojené s každým znakem. Všimněte si, že se nejedná o reprezentaci v paměti, pouze o celé číslo, které se nazývá kódový bod . Prostor pro kódování těchto čísel je rozdělen do 17 oblastí s 65 536 kódovými body. Tyto oblasti se nazývají letadla .
Bod kódu je označen „U + xxxx“, kde „xxxx“ je v šestnáctkové soustavě a má 4 až 6 číslic :
Znak s názvem „Latinské velké písmeno c cedilla“ (Ç) má tedy číslo U + 00C7. Patří do popředí.
V zásadě jsou k dispozici všechny kódové body mezi U + 0000 a U + 10FFFF, ale určité intervaly jsou neustále vyhrazeny pro konkrétní použití, zejména vyloučená zóna pro směrování, která umožňuje kódování UTF-16 ( viz níže), oblasti pro soukromé použití a některé oblasti (např. U + FFFE nebo U + FFFF) obsahující jiné než znaky, jejichž použití je při výměně dat vyhovující Ostatní body kódu jsou buď již přiřazeny znakům, nebo vyhrazeny pro budoucí standardizaci.
Zóna pro soukromé použití: Unicode přidělil platným znakům mnoho kódových bodů, ale jejichž sémantika není známa kvůli soukromému použití (například poslední dva plány mezi U + F0000 a U + 10FFFF jsou zcela vyhrazeny tomuto použití, s výjimkou dvou kódů body na konci každého plánu, které jsou v souladu s textem zakázány bez znaků).
Standardizace kódování, tj. Přiřazení bodů kódu znakům ve společném repertoáru, je opět společným rozhodnutím sdíleným mezi normami Unicode a ISO / IEC 10646 . Všechny znaky v adresáři mají jedinečný bod kódu (i když pro některé jazyky nebo Unicode jsou některé znaky považovány za ekvivalentní).
Je možné poznamenat, že pokud je adresář znaků rozšiřitelný, je omezen horní mezí kódovacího prostoru: U + 10FFFF. Velká většina možných kódových bodů není spojena s žádným konkrétním znakem, ale může být kdykoli.
Také tyto stále bezplatné body kódu nejsou považovány za neplatné, ale představují abstraktní znaky (dosud neurčené a dočasně rezervované). Tyto abstraktní znaky (stejně jako znaky pro soukromé použití) doplňují kódovanou znakovou sadu standardizovaného adresáře do jediné hry zvané „ univerzální kódovaná znaková sada “ ( Universal Coded Character Set , často zkráceně UCS ), která obsahuje všechny kódované znakové sady adresářů každé z minulých, současných i budoucích verzí ISO / IEC 10646 a Unicode (pouze od verze 1.1 ).
Formalizace kódování znaků ( forma kódování znaků )Tentokrát přijdeme k fyzické reprezentaci (v paměti, na disku atd.): Tato vrstva určuje, která kódovací jednotka ( kódové jednotky ) nebo codet bude představovat znak nebo přesněji kódový bod: byte , seizet (v ) (16bitové slovo) nebo třicet deuzet (en) (32bitové slovo).
Těchto formalizmů může být (a existuje) několik. Konkrétní formalismus musí specifikovat velikost kódovací jednotky a označit, jak je celé číslo představující kódový bod reprezentováno v řadě kódovacích jednotek - a naopak, tj. Jak najít kódový bod vzhledem k posloupnosti kódovacích jednotek.
Mechanizační znaky serializace ( schéma kódování znaků )Tato vrstva se stará o serializaci sekvencí kódovacích jednotek definovaných předchozí vrstvou do sekvencí bajtů. Toto je místo, kde je vybráno pořadí bajtů mezi big-endianem (nejdříve nejvýznamnější bajt) a malým endianem (nejdříve nejméně významný bajt).
V tomto kroku je také možné přidat indikátor pořadí bajtů (nebo kusovník pro značku pořadí bajtů ), který na začátku souboru nebo datového proudu indikuje, zda je v big-endianu nebo v malém endianu. Ve světě internetu se používá jen zřídka, dává přednost explicitnímu označení (například „ charset = UTF-16BE “ v MIME , například k označení datového proudu big-endian, kde BE znamená big endian ).
Overcoding převod ( převod syntaxe kódování )Zde volitelné mechanismy komprese nebo šifrování.
Může existovat také překódování jako pro LDAP, které určuje, že řetězce Unicode by měly být zakódovány v UTF-8 a překódovány v Base64 .
Abychom překonali přísná omezení předchozích standardů (sekvence bitů, reprezentace), Unicode od nynějška odděluje definici znakové sady (seznam znaků podle jejich názvu) a jejich index, kódový bod , kódování . Nemůžeme tedy mluvit o velikosti znaku Unicode, protože to závisí na zvoleném kódování, a to se proto může lišit. V praxi je UTF-8 široce používán v západních zemích.
Kde ASCII používá 7 bitů a ISO / IEC 8859-1 8 bitů (jako většina národních kódových stránek), Unicode, který sbírá znaky z každé kódové stránky, potřeboval použít více než 8 bitů na jeden bajt . Limit byl původně stanoven na 16 bitů pro rané verze Unicode a 32 bitů pro rané verze ISO / IEC 10646 .
Aktuální limit je nyní umístěn mezi 20 a 21 bity na kódový bod přiřazený standardizovaným znakům ve dvou nyní vzájemně kompatibilních standardech:
Unicode a ISO / IEC 10646 přijímají několik forem univerzální transformace, které představují platný bod kódu. Citujme:
Počet za UTF představuje minimální počet bitů kódových bodů, se kterými je reprezentován platný bod kódu.
Tyto transformace byly původně vytvořeny pro schémata interní reprezentace a kódování kódových bodů normy ISO / IEC 10646 , které původně mohly definovat 31bitové kódové body. Od té doby byla změněna norma ISO / IEC 10646 , takže tyto tři formy jsou navzájem plně kompatibilní a umožňují kódování všech kódových bodů (protože UTF-16 umožňuje pouze kódové body prvních 17 letadel zastoupeny).
Unicode také velmi přísně standardizoval tyto tři formy transformace všech platných kódových bodů (U + 0000 na U + D7FF a U + E000 na U + 10FFFF) a pouze na ně, ať už mají reprezentovat text ve formových sekvencích kódových bodů, nebo kódové body přiřazené platným znakům nebo vyhrazené nebo přiřazené neznakům. Kódové body přiřazené polovičním zónám (U + D800 až U + DFFF), používané pouze v UTF-16, jsou jednotlivě neplatné, protože se používají k reprezentaci bodů kódu pomocí dvojice 2 16bitových kódových bodů pro 16 dalších plánů.
UTF-8UTF-8 , které jsou uvedeny v RFC 3629, je nejběžnější aplikace pro Unix a internet . Jeho kódování s proměnnou velikostí umožňuje, aby byl v průměru levnější při používání paměti (pro jazyky s latinkou). Ale to výrazně zpomalí operace týkající se sub-string extrakce v některých jazycích, které index struny celými čísly (příklad = „815 th znak řetězce“), protože je třeba počítat znaky od začátku řetězce vědět kde je první znak, který chcete extrahovat.
UTF-8 také poskytuje a to je jeho hlavní výhoda, kompatibilita s jednoduchou manipulací s řetězci v ASCII v programovacích jazycích . Programy napsané v jazyce C tedy mohou často běžet bez úprav.
Zpočátku UTF-8 mohl kódovat jakýkoli bod kódu mezi U + 0000 a U + 7FFFFFFF (tedy až 31 bitů). Toto použití je zastaralé a norma ISO / IEC 10646 byla pozměněna tak, aby podporovala pouze platné body kódu prvních 17 snímků, s výjimkou poloviční zóny odpovídající kódovým prvkům použitým v UTF-16 pro reprezentaci na dvou kódech prvky. kódové body 16 dalších plánů. Také nejdelší sekvence v UTF-8 vyžadují maximálně 4 bajty, místo 6 dříve. Kromě toho byl UTF-8 pozměněn nejprve Unicode a poté ISO / IEC 10646, aby akceptoval pouze nejkratší zastoupení každého bodu kódu ( jedinečnost kódování). Skutečnost, že může představovat několik různých způsobů stejnou postavu, představovala bezpečnostní problémy, protože hacker mohl obejít „filtrovanou“ formu jiným zápisem.
Jeho výhodou oproti UTF-16 (a UTF-32) je, že rozdíly v pořadí bytů tvořících slovo ( endianness ) nepředstavují problém v síti heterogenních systémů; tuto transformaci tedy dnes používá většina standardizovaných směnných protokolů.
Na druhou stranu je UTF-8 plně kompatibilní pro přenos textů protokoly založenými na znakové sadě ASCII, nebo může být kompatibilní (za cenu vícebajtové transformace znaků jiných než ASCII) s výměnnými protokoly podporujícími 8bitové kódované znakové sady (ať už na základě ISO / IEC 8859 nebo mnoha dalších 8bitových kódovaných znakových sad definovaných národními normami nebo konkrétními proprietárními systémy).
Jeho hlavní nevýhodou je kódování velmi proměnné délky (1 bajt pro kódové body přiřazené ASCII - znaky ISO / IEC 646 , 2 až 4 bajty pro ostatní kódové body), i když je automatická synchronizace specifická pro UTF-8 kódování umožňuje určit začátek sekvence z náhodné polohy (provedením maximálně 3 dalších přečtení předchozích kódových bodů). Toto kódování však není navrženo tak, aby usnadnilo zpracování řetězců znaků: často preferujeme UTF-16, někdy UTF-32 (chamtivý v paměti).
DerivátyUTF-16 je dobrý kompromis, kdy místo v paměti není příliš malá, protože drtivá většina znaků Unicode přiřazených ke spisům moderních jazyků (včetně nejčastěji používaných znaků) jsou ve vícejazyčném základně plánu, a proto může být zastoupen na 16 bitů. Francouzská verze ISO / IEC 10646 nazývá tato 16bitová slova „seizets“, ale mezinárodní verze je přesto popisuje jako klasická 16bitová slova složená ze dvou bajtů a podléhající obvyklým pravidlům endismu .
ahoj \ lo | DC00 | DC01 | ... | DFFF |
---|---|---|---|---|
D800 | 10 000 | 10001 | ... | 103FF |
D801 | 10400 | 10401 | ... | 107FF |
⋮ | ⋮ | ⋮ | ⋱ | ⋮ |
DBFF | 10FC00 | 10FC01 | ... | 10FFFF |
Body kódu šestnácti dalších rovin vyžadují transformaci dvou 16bitových slov:
Protože většina běžně používaných znaků je umístěna v základní rovině, je kódování dalších klipů často špatně testováno v softwaru, což vede k chybám nebo problémům se zabezpečením i v široce distribuovaném softwaru. Některé právní rámce, jako je GB 18030 , mohou požadovat podporu dalších plánů, které zejména obsahují znaky přítomné ve vlastních jménech.
Je možné určit začátek kódovací sekvence z kteréhokoli bodu v textu představovaném v UTF-16 provedením maximálně jednoho dalšího čtení, pouze pokud je tento kódový bod v dolní poloviční oblasti. Tato forma je ekonomičtější a rychlejší na zpracování textů obsahujících několik znaků ASCII (U + 0000 až U + 007F) než UTF-8.
Tato transformace má však dvě nekompatibilní schémata kódování, která závisí na uspořádání bajtů v 16bitové celočíselné reprezentaci. Abychom tuto nejednoznačnost vyřešili a umožnili přenos mezi heterogenními systémy, je nutné přidat informace označující použité kódovací schéma (UTF-16BE nebo UTF-16LE) nebo před kódovaný text uvést kódový bod. Valid U + FEFF (přiřazeno znaku „nerozbitný prostor s nulovou šířkou“, znak nyní vyhrazený pro toto výhradní použití jako značka řazení bytů), protože kódový bod „obrácený“ U + FFFE platný je neznak, v textech zakázaný vyhovuje Unicode a ISO / IEC 10646 .
Druhou chybou UTF-16 je, že text transformovaný s ním a přenášený jedním ze dvou kódovacích schémat obsahuje velký počet bajtů, které mají hodnotu null nebo mají hodnotu, která je v rozporu s hodnotami d. 'Bajty vyhrazené určitými výměnnými protokoly.
Jedná se zejména o kódování, které platforma Java interně používá , stejně jako Windows pro jeho API kompatibilní s Unicode (s typem wchar).
UTF-32UTF-32 se používá, když je paměťový prostor není problém a my musíme mít přístup k znaky přímo a beze změny velikosti ( egyptské hieroglyfy ).
Výhodou této standardizované transformace je, že všechny prvky kódu mají stejnou velikost. Není proto nutné číst další kódové body k určení začátku reprezentace kódového bodu.
Tento formát je však obzvláště neekonomický (včetně paměti), protože zbytečně „plýtvá“ alespoň jedním bajtem (vždy nulovým) na znak. Velikost paměti v textu má negativní vliv na výkon, protože vyžaduje více čtení a zápisů na disk v případě plné RAM a také snižuje výkon mezipaměti paměti procesorů.
U textů psaných v současných moderních jazycích (na rozdíl od určitých vzácných znaků doplňkové ideografické roviny), a proto pouze s použitím kódových bodů základní vícejazyčné roviny, tato transformace zdvojnásobuje množství potřebné paměti ve srovnání s UTF-16.
Stejně jako UTF-16, UTF-32 má několik kódovacích schémat v závislosti na uspořádání bytů skládajících celé číslo více než 8 bitů (dvě kódovací schémata UTF-32 jsou standardizována, UTF-32BE a UTF-32LE). Je proto také nutné specifikovat toto kódovací schéma nebo ho určit předponou textu reprezentací v UTF-32 kódového bodu U + FEFF. Stejně jako UTF-16 je přítomnost nulových bajtů ve standardizovaných schématech kódování UTF-32 nekompatibilní s mnoha protokoly pro výměnu mezi heterogenními systémy.
Také tento formát se používá nejčastěji jen velmi lokálně pro určité zpracování jako přechodná forma, se kterou se snáze manipuluje, a často dáváme přednost transformaci UTF-16, která je často efektivnější pro zpracování a ukládání velkého množství textů, převod mezi tyto dva jsou velmi snadno proveditelné a velmi levné, pokud jde o složitost zpracování.
Ve skutečnosti je mnoho knihoven pro zpracování textu psáno pouze s UTF-16 a je efektivnější než UTF-32, i když texty obsahují znaky dalších rovin (protože tento případ obrázku zůstává v drtivé většině případů vzácný).
Mějte však na paměti, že transformace na UTF-32 používá 32bitové kódové body, z nichž mnohé nemusí představovat žádný platný bod kódu (hodnoty mimo dva intervaly představující platné body kódu U + 0000 až U + D7FF a U + E000 až U + 10FFFF), proto žádný platný nebo vyhrazený znak (jakékoli informace v nich obsažené proto nemohou být textem ve smyslu Unicode). Přenos textů s použitím těchto neplatných hodnot kódu v jednom ze standardizovaných kódovacích schémat UTF-32 je zakázán pro jakýkoli systém vyhovující Unicode (je nutné místo toho použít body kódu pro soukromé použití), protože to nebude možné zastupovat je v jiné transformaci UTF, se kterou jsou tři standardizované UTF bijektivně kompatibilní.
Jedná se o transformaci Unicode, která není definována konsorciem Unicode, ale správou standardů v Číně, kde je její podpora v aplikacích povinná. Historicky se jednalo o kódovanou znakovou sadu, která byla rozšířena o podporu celého repertoáru UCS pomocí algoritmické transformace vyplňující velkou tabulku korespondence mezi kódy.
Tvrdit, že Unicode kóduje znaky, se rovná tvrzení, že přiřazuje číslo abstraktním symbolům podle principu logického kódování. Unicode na druhé straně nekóduje grafické znázornění znaků, glyfů . Mezi vyobrazením postavy a jejím číslem tedy není žádná námitka , protože všechny grafické varianty stylu jsou jednotné.
Kromě toho na rozdíl od klasického písma ASCII nebo Latin-1 není výběr glyfů kódem jedinečný a je často kontextový a může také zobrazit stejný glyf pro různé kódy. Francouzský znak „é“ lze tedy popsat dvěma způsoby: buď přímým použitím čísla odpovídajícího „é“, nebo sledováním čísla „e“ číslem akutního přízvuku bez lovu. Ať zvolíte jakoukoli možnost, zobrazí se stejný glyf. O prvním znaku řekneme, že je předkomponovaný, o druhém, že jde o kompozici (dva znaky tvoří jeden glyf složený z obou). To je povoleno a dokonce velmi doporučeno, protože různé formy kódování jsou Unicode klasifikovány jako „kanonicky ekvivalentní“, což znamená, že se dvěma ekvivalentními formami kódování by se mělo zacházet stejně.
Mnoho složených znaků je v tomto případě a lze je kódovat těmito dvěma způsoby (nebo více, některé složené znaky lze rozložit více než jedním způsobem, zejména pokud mají několik diakritiky). Nejčastěji je předkomponovaný znak vhodnější pro kódování textu, pokud existuje (to je například polytonická řečtina , která, zakódovaná při rozkladu, nemusí být graficky uspokojivá: v závislosti na písmech, různých složky glyfů, které jsou někdy špatně uspořádané a obtížně čitelné). Ne všechny složené znaky však mají pro svůj předem vytvořený tvar jedinečný bod kódu.
Stejně tak některé psací systémy, jako je Devânagarî , perský nebo arabský , vyžadují komplexní zpracování ligatur : grafémy mění tvar v závislosti na své poloze nebo sousedních zemích (viz Kontextová varianta a Společný dopis ). Výběr správného glyfu vyžaduje zpracování, aby se určilo, který kontextový tvar se má v písmu vybrat, přestože všechny kontextové tvary jsou v Unicode kódovány shodně.
Z těchto důvodů je třeba s písmem Unicode zacházet opatrně. Například písmo se všemi existujícími glyfy není dostačující. Je také nutné, aby zobrazovací systém ( vykreslovací modul ) disponoval mechanismy schopnými zpracovávat ligatury , kontextové varianty a společné formy specifické pro určité jazyky. Naopak písmo, které představuje pouze část znaků, ale ví, jak je správně zobrazit, si lépe zaslouží název „písmo Unicode“. A konečně, určitá technická omezení formátů písem jim mohou bránit v podpoře celého adresáře. V praxi je nemožné (v roce 2009) najít jediné písmo, které podporuje celý adresář.
Znakové písmo Unicode je tedy pouze písmo umožňující přímo zobrazit text zakódovaný ve všech formách autorizovaných Unicode a umožňující podporu soudržné podmnožiny přizpůsobené jednomu nebo více jazykům pro podporu jednoho nebo více skriptů. Žádné písmo Unicode nemůže „fungovat“ samo o sobě a plná podpora psaní vyžaduje jejich podporu ve vykreslovacím modulu , který je schopen detekovat ekvivalentní formy kódování, vyhledávat kontextové formy v textu a vybírat různé glyfy písma kódovaného Unicode, v případě potřeby pomocí korespondenčních tabulek obsažených v samotném písmu.
ICU multiplatformní knihovna software vám umožní manipulovat data zakódovaná s Unicode. Podporu Unicode specifickou pro platformu integrují také moderní systémy ( Java , Microsoft Windows , GNU / Linux , standardní knihovny C / C ++ , Python atd.).
Typy, které se mají použít k ukládání proměnných Unicode, jsou:
Programovací jazyk | Zadejte jeden znak | Zadejte libovolný text |
---|---|---|
VS | char[4] Kde wchar_t[2] | char[] Kde wchar_t[] |
C ++ | char[4] Kde wchar_t[2] | char[]nebo wchar_t[]nebo std::stringnebostd::wstring |
Jáva | char[2] Kde int | char[] Kde String |
Knihovna ICU (pro C / C ++ nebo Java) | UChar | UChar[]nebo String,UnicodeString |
JavaScript nebo ECMAScript | char | string |
C # nebo J # | char | string |
Delphi | char[4] Kde widechar[2] | string Kde widestring |
Python 2 | unicode | |
Python 3 | str | |
Jít | rune(= int32) | string Kde []byte |
Rychlý | Character | String |
Unicode však stále trpí slabou podporou regulárních výrazů některým softwarem, ačkoli knihovny jako ICU a Java je mohou podporovat. Taková podpora dosud nebyla standardizována pro ECMAScript a je poskytována pouze pomocí knihoven vytvořených s jazykem nebo rozhraní pro interoperabilitu s jinými systémy (zejména s CORBA , COM ) nebo jazyky (zejména C ++ a Java ).
Aktuální rozdělení na oddíly najdete na oficiálním webu Unicode. Vzhledem k důležité roli Unicode dnes ( ISO / IEC 10646 ) zde však budou popsány bloky hlavních znaků. Francouzské názvy jsou oficiálními názvy ISO / IEC 10646 , mezinárodního dvojjazyčného standardu, který používá stejné znaky jako Unicode. Jsou stejně oficiální jako anglická jména.
Starý standard Unicode 1.0 je zastaralý a nekompatibilní s ISO / IEC 10646 a Unicode 1.1 a se všemi jeho novějšími verzemi; hlavní nekompatibilita spočívá v tom, že znakové bloky Hangul používané pro psaní korejského jazyka, které změnily pozici a jejichž staré body kódu byly od té doby přiřazeny jiným blokům. Níže uvedená tabulka je kompatibilní s ISO / IEC 10646 (všechny verze) a Unicode 1.1 (nebo novější).
Poznámka: Názvy bloků nejsou normativní. „Basic Latin“ je tedy ekvivalentní „BASIC LATIN“.
V následujících tabulkách jakýkoli název bloku s poznámkou týkající se oficiálního souboru PDF Unicode znamená, že stránka Wikipedia přidružená k tomuto bloku neexistuje nebo je nesprávná.
Základní vícejazyčný plán (PMB, 0000 až FFFF)Kódové body | Oficiální název bloku | Oficiální PDF | Zjistit více | |
---|---|---|---|---|
Start | Konec | |||
0000 | 007F | Základní příkazy C0 a latinka | U0000 | viz ISO / IEC 646 , ASCII , latinka , řídicí znaky Unicode |
0080 | 00FF | Příkazy C1 a doplněk Latin-1 | U0080 | viz ISO / IEC 8859 , ISO / IEC 8859-1 , latinská abeceda , kontrolní znaky Unicode |
0100 | 017F | Rozšířená latinka A | U0100 | viz latinka |
0180 | 024F | Rozšířená latinka B | U0180 | viz latinka |
0250 | 02AF | Mezinárodní fonetická abeceda (API) | U0250 | viz mezinárodní fonetická abeceda |
02B0 | 02FF | Dodatky se šířkou | U02B0 | viz Diakritika , latinská abeceda , Diakritika latinské abecedy , mezinárodní fonetická abeceda |
0300 | 036F | Diacritics | U0300 | viz Diakritika , Diakritika latinky , Diakritika řecké abecedy , Koptská abeceda , Diakritika cyrilice |
0370 | 03FF | Řečtina a koptština | U0370 | viz řecká abeceda a koptská abeceda |
0400 | 04FF | cyrilice | U0400 | viz azbuka |
0500 | 052F | Doplněk cyrilice | U0500 | viz azbuka |
0530 | 058F | Arménský | U0530 | viz arménská abeceda |
0590 | 05FF | hebrejština | U0590 | viz Hebrejská abeceda , Diakritika , Diakritika Hebrejské abecedy |
0600 | 06FF | Arab | U0600 | viz arabská abeceda |
0700 | 074F | syrský | U0700 | viz syrština |
0750 | 077F | Arabský doplněk | U0750 | viz arabská abeceda |
0780 | 07BF | Thâna | U0780 | viz maledivská abeceda |
07C0 | 07FF | N'ko | U07C0 | viz N'ko |
0800 | 083F | samaritán | U0800 | viz Samaritánská abeceda |
0840 | 085F | Mandean | U0840 | viz mandejská abeceda |
0860 | 086F | Syrský doplněk | U0860 | viz syrština |
0870 | 089F | Rezervovat | - | - |
08A0 | 08FF | Rozšířená arabština A | U08A0 | viz arabská abeceda , Diacritics , Diacritics of the Arabic alphabet |
0900 | 097F | Devanagari | U0900 | viz Devanâgarî |
0980 | 09FF | bengálský | U0980 | viz Bengálsko |
0A00 | 0A7F | Gurmoukhi | U0A00 | viz Gurmukhī |
0A80 | 0AFF | Gudžarát | U0A80 | viz gudžarátská abeceda |
0B00 | 0B7F | Oriya | U0B00 | viz Oriya |
0B80 | 0BFF | Tamil | U0B80 | viz Tamil |
0C00 | 0C7F | Telougou | U0C00 | viz Telougou |
0C80 | 0CFF | Kannara | U0C80 | viz Kannara |
0D00 | 0D7F | Malayalam | U0D00 | viz malabarština |
0D80 | 0DFF | Singhalese | U0D80 | viz Singhalese |
0E00 | 0E7F | Thai | U0E00 | viz thajština |
0E80 | 0EFF | Lao | U0E80 | viz Laos |
0F00 | 0FFF | Tibetský | U0F00 | vidět tibetštinu |
1000 | 109F | Barmská | U1000 | viz barmština |
10A0 | 10FF | Gruzínský | U10A0 | viz gruzínské , gruzínské abecedy |
1100 | 11FF | Jamos hangul | U1100 | viz Hangûl |
1200 | 137F | Etiopský | U1200 | viz Alphasyllabaire geez |
1380 | 139F | Etiopský dodatek | U1380 | viz Alphasyllabaire geez |
13A0 | 13FF | Čerokee | U13B0 | viz Syllabary Cherokee |
1400 | 167F | Sjednocené kanadské domorodé slabikáře | U1400 | viz indiánské jazyky |
1680 | 169F | Ogame | U1680 | viz Oghamic abeceda |
16A0 | 16FF | Runy | U16A0 | viz runová abeceda |
1700 | 171F | Tagalog | U1700 | viz tagalog |
1720 | 173F | Hanounóo | U1720 | viz Hanunóo Alphabet (en) |
1740 | 175F | Bouhide | U1740 | viz Buhid (en) |
1760 | 177F | Tagbanoua | U1760 | viz Alphabet Tagbanoua (en) |
1780 | 17FF | Khmerové | U1780 | viz Khmer |
1800 | 18AF | mongolský | U1800 | viz mongolština |
18B0 | 18FF | Rozšířené kanadské domorodé slabikáře | U18B0 | viz indiánské jazyky |
1900 | 194F | Limbou | U1900 | viz Limbou |
1950 | 197F | Tai to | U1950 | viz Taï-le |
1980 | 19DF | Nová Taï lü | U1980 | viz Tai lü |
19E0 | 19FF | Khmerské symboly | U19E0 | viz Khmer |
1A00 | 1A1F | Bougui | U1A00 | viz Bugis Language , Writing Lontara |
1A20 | 1AAF | Tai tham | U1A20 | viz abeceda Taï Tham ( fr ) |
1AB0 | 1AFF | Rozšířená diakritika | U1AB0 | viz Diacritic |
1B00 | 1B7F | Balijské | U1B00 | viz balijské psaní |
1B80 | 1BBF | Soundanese | U1B80 | viz Soundanese , Sudanese Alphabet (en) |
1BC0 | 1 BFF | Batak | U1BC0 | viz Batak skript |
1C00 | 1C4F | Lepcha | U1C00 | viz Abeceda Lepch (en) |
1C50 | 1C7F | Ol chiki | U1C50 | viz Abeceda santâlî |
1C80 | 1C8F | Rozšířená cyrilice C. | U1C80 | viz azbuka , církevní slovanština |
1C90 | 1CBF | Rozšířený gruzínský | U1C90 | viz gruzínské , gruzínské abecedy |
1CC0 | 1CCF | Sundanský doplněk | U1CC0 | viz Soundanese , Sudanese Alphabet (en) |
1CD0 | 1CFF | Vedic rozšíření | U1CD0 | viz sanskrt |
1D00 | 1D7F | Fonetický doplněk | U1D00 | viz mezinárodní fonetická abeceda |
1D80 | 1DBF | Rozšířený fonetický doplněk | U1D80 | viz mezinárodní fonetická abeceda |
1DC0 | 1DFF | Doplněk diakritiků | U1DC0 | viz Diacritic |
1E00 | 1EFF | Latinka rozšířena o další | U1E00 | viz latinka |
1F00 | 1FFF | Rozšířená řečtina | U1F00 | viz řecká abeceda , polytonická řečtina |
2000 | 206F | Obecná interpunkce | U2000 | viz interpunkce , mezera |
2070 | 209F | Exponenty a indexy | U2070 | viz Exponent a dolní index |
20A0 | 20CF | Symboly měny | U20A0 | viz symbol měny |
20D0 | 20FF | Kombinatorické značky pro symboly | U20D0 | viz Šipka , rotace |
2100 | 214F | Symboly typu písmeno | U2100 | viz Teplota , Matematický symbol , Symboly zákona o ochranných známkách |
2150 | 218F | Číselné formy | U2150 | viz římské číslo , zlomek |
2190 | 21FF | Šipky | U2190 | viz šipka |
2200 | 22FF | Matematické operátory | U2200 | viz Matematické operátory |
2300 | 23FF | Různé technické značky | U2300 | viz řecká abeceda , interpunkce , šipky , matematické symboly , emodži |
2400 | 243F | Piktogramy příkazů | U2400 | viz ISO / IEC 8859 , ISO / IEC 646 , Control C0 (en) |
2440 | 245F | Optické rozpoznávání znaků | U2430 | viz Optické rozpoznávání znaků |
2460 | 24FF | Alfanumerický kroužek | U2460 | viz latinka , arabské číslice |
2500 | 257F | Sítě | U2500 | viz Tvarový znak (en) |
2580 | 259F | Dlažební kameny | U2580 | viz Tvarový znak (in) , Obdélník |
25A0 | 25FF | Geometrické tvary | U25A0 | viz Geometrický tvar |
2600 | 26FF | Různé symboly | U2600 | viz Symbol , Emoji , Francouzská karetní hra , Šachy , Symbol pohlaví |
2700 | 27BF | Casseau | U2700 | viz Symbol , arabské číslice , interpunkční znaménka , emodži , matematické operátory , šipka |
27C0 | 27EF | Různé matematické symboly A | U27C0 | viz matematický symbol |
27F0 | 27FF | Šipky doplněk A | U27F0 | viz šipka |
2800 | 28FF | Kombinace Braillova písma | U2800 | viz Braillovo písmo |
2900 | 297F | Šipky doplněk B | U2900 | viz šipka |
2980 | 29FF | Různé matematické symboly B | U2980 | viz matematický symbol |
2A00 | 2AFF | Další matematické operátory | U2A00 | viz Matematické operátory |
2B00 | 2BFF | Různé symboly a šipky | U2B00 | viz Šipka , Emoji |
2C00 | 2C5F | Hlaholika | U2C00 | viz hlaholická abeceda |
2C60 | 2C7F | Latinka rozšířená C. | U2C00 | viz latinská abeceda , ujgurština |
2C80 | 2CFF | Koptský | U2C80 | viz koptská abeceda |
2D00 | 2D2F | Gruzínský doplněk | U2D00 | viz gruzínské , gruzínské abecedy |
2D30 | 2D7F | Tifinagh | U2D30 | viz jazyky Tifinagh a Berber |
2D80 | 2DDF | Etiopský rozšířen | U2D80 | viz Alphasyllabaire geez |
2DE0 | 2DFF | Rozšířená cyrilice A | U2DE0 | viz cyrilice , Diacritics , Diacritics of the Cyrillic Alphabet |
2E00 | 2E7F | Interpunkční doplněk | U2E00 | viz interpunkce |
2E80 | 2EFF | Další formy klíčů CJC | U2E80 | viz čínština, japonština a korejština , sinogram , čínské písmo , čínské jazyky , písma japonština , japonština , hanja , korejština |
2F00 | 2FDF | Čínské klíče Kangxi | U2F00 | viz slovník znaků Kangxi |
2FE0 | 2FEF | Rezervovat | - | - |
2FF0 | 2FFF | Ideografický popis | U2FF0 | viz ideografický popis |
3000 | 303F | Symboly CJC a interpunkce | U3000 | viz interpunkce , čínština, japonština a korejština , sinogram , čínské psaní , čínské jazyky , písma japonština , japonština , hanja , korejština |
3040 | 309F | Hiragana | U3040 | viz Hiragana , Spisy japonštiny , japonština |
30A0 | 30FF | Katakana | U30A0 | viz Katakana , Spisy japonštiny , japonština |
3100 | 312F | Bopomofo | U3100 | viz Bopomofo , čínština, japonština a korejština , Sinogramme |
3130 | 318F | Jamos kompatibilita s Hangul | U3130 | viz Hangûl , Sinogramme , korejština |
3190 | 319F | Kanbun | U3190 | viz Kanbun , Sinogramme |
31A0 | 31BF | Bopomofo prodlouženo | U31A0 | viz Bopomofo , Sinogramme |
31C0 | 31EF | Vlastnosti CJC | U31C0 | viz čínština, japonština a korejština , sinogram , čínské písmo , čínské jazyky , písma japonština , japonština , hanja , korejština |
31F0 | 31FF | Fonetické rozšíření Katakana | U31F0 | viz Katakana , Spisy japonštiny , japonština |
3200 | 32FF | Písmena a měsíce v kroužku CJC | U3200 | viz obrázky arabština , čínština, japonština a korejština , sinogram , čínské písmo , čínské jazyky , písma japonština , japonština , hanja , korejština |
3300 | 33FF | Kompatibilita s CJC | U3000 | viz Měrná jednotka , čínština, japonština a korejština , sinogram , čínské písmo , čínské jazyky , písma japonština , japonština , hanja , korejština |
3400 | 4DBF | Dodatek A k Jednotným ideogramům CJC ( část 1 ) ( část 2 ) |
U3400 | viz čínština, japonština a korejština , sinogram , čínské písmo , čínské jazyky , písma japonština , japonština , hanja , korejština |
4DC0 | 4DFF | Hexagramy Classic of Mutations nebo Yi Jing | U4DC0 | viz Yi Jing , Hexagram , čínština, japonština a korejština , sinogram |
4E00 | 9FFF | Jednotné ideogramy CJC ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) |
U4E00 | viz čínština, japonština a korejština , sinogram , čínské písmo , čínské jazyky , písma japonština , japonština , hanja , korejština , vietnamština |
A000 | A48F | Slabičné yi Čerstvých hor | UA000 | viz slabikář yi |
A490 | A4CF | Yi klíče | UA490 | viz slabikář yi |
A4D0 | A4FF | Lisu | UA4D0 | viz Lisu , Alphabet Fraser (en) |
A500 | A63F | Vai | UA500 | viz Syllabaire vaï |
A640 | A69F | Rozšířená cyrilice B. | UA640 | viz azbuka |
A6A0 | A6FF | Bamoun | UA6A0 | viz skript Bamoun |
A700 | A71F | Změna tónových písmen | UA700 | viz Jazyk v tónech , čínské jazyky |
A720 | A7FF | Latin Extended D | UA720 | viz latinská abeceda |
A800 | A82F | Sylotî nâgrî | UA800 | viz Sylotî nâgrî (en) |
A830 | A83F | Indické běžné digitální tvary | UA830 | viz Indie |
A840 | A87F | Phags-pa | UA840 | viz skript phagpa |
A880 | A8DF | Saurachtra | UA880 | viz Alphabet Saurashtra (en) |
A8E0 | A8FF | Rozšířený devanāgarī | UA8E0 | viz Devanâgarî |
A900 | A92F | Kayah li | UA900 | viz abeceda Kayah Li |
A930 | A95F | Rejang | UA930 | viz Psaní rejang |
A960 | A97F | Jamos Hangul Extended A | UA960 | viz Hangûl , Sinogramme , korejština |
A980 | A9DF | Jávský | UA980 | viz jávský skript |
A9E0 | A9FF | Barmská rozšířená B | UA9E0 | viz barmština , barmské písmo |
AA00 | AA5F | Cham | UAA00 | viz Cham |
AA60 | AA7F | Barmská prodloužená A | UAA60 | viz barmština , barmské písmo |
AA80 | AADF | Tai viet | UAA80 | viz Alphabet taï viêt , Tay dam , Tay don , Tay Song ( fr ) |
AAE0 | AAFF | Meitei Mayek prodloužena | UAAE0 | viz Meitei , scénář Meitei |
AB00 | AB2F | Ethiopian Extended A | UAB00 | viz Alphasyllabaire geez |
AB30 | AB6F | Latin Extended E | UAB30 | viz latinská abeceda , Teuthonista , Alphabet d'Ascoli , abeceda Rousselot-Gilliéron |
AB70 | ABBF | Cherokee doplněk | UAB70 | viz Syllabary Cherokee |
ABC0 | ABFF | Meitei Mayek | UABC0 | viz Meitei , scénář Meitei |
AC00 | D7AF | Slabiky Hangul ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) |
UAC00 | viz Hangûl , Sinogramme , korejština |
D7B0 | D7FF | Jamos Hangul Extended B | U27B0 | viz Hangûl , Sinogramme , korejština |
D800 | DBFF | Vysokopásmová poloviční zóna | UD800 | viz horní poloviční zóna indirection |
DC00 | DFFF | Polozóna s nízkou indikací | UDC00 | viz poloviční zóna s nízkým směrováním |
E000 | F8FF | Oblast pro soukromé použití ( část 1 ) ( část 2 ) |
UE000 | Žádná oficiálně definovaná vlastnost |
F900 | FAFF | Ideogramy o kompatibilitě s CJC | UF900 | viz čínština, japonština a korejština , sinogram , čínské písmo , čínské jazyky , písma japonština , japonština , hanja , korejština |
FB00 | FB4F | Abecední formy prezentace | UFB00 | viz latinka , hebrejská abeceda , arménská abeceda |
FB50 | FDFF | Arabské prezentační formuláře A ( část 1 ) ( část 2 ) ( část 3 ) |
UFB50 | viz arabská abeceda |
FE00 | FE0F | Selektory variant | UFE00 | viz varianta selektorů (v) |
FE10 | FE1F | Svislé tvary | UFE10 | viz interpunkce , GB 18030 |
FE20 | FE2F | Kombinatorické poloviční znaky | UFE20 | viz Diacritic |
FE30 | FE4F | Formuláře kompatibility CJC | UFE30 | viz čínština, japonština a korejština , sinogram , čínské písmo , čínské jazyky , písma japonština , japonština , hanja , korejština |
FE50 | FE6F | Malé variace tvaru | UFE50 | viz interpunkce , GBK , GB 2312 , CNS 11643 (en) |
FE70 | FEFF | Arabské prezentační formuláře B | UFE70 | viz arabská abeceda |
FF00 | FFEF | Tvary poloviční a plné šířky | UFF00 | zobrazit tvary v polovině a celé šířce , čínština, japonština a korejština , sinogram , čínské písmo , čínské jazyky , písma japonština , japonština , hanja , korejština , ASCII , latinka |
FFF0 | FFFF | Speciální znaky | UFFF0 | viz Speciální znaky |
Kódové body | Oficiální název bloku | Oficiální PDF | Zjistit více | |
---|---|---|---|---|
Start | Konec | |||
10 000 | 1007F | Lineární osnova B | U10000 | viz Lineární B |
10080 | 100FF | Lineární B ideogramy | U10080 | viz Lineární B |
10100 | 1013F | Egejská čísla | U10100 | viz čísla iEgean (en) |
10140 | 1018F | Starořecká čísla | U10140 | viz starořecká čísla |
10190 | 101CF | Starověké symboly | U10190 | viz Jednotky Roman , římská měna |
101D0 | 101FF | Phaistos Disc | U101D0 | viz Phaistos Disc |
10200 | 1027F | Rezervovat | - | - |
10280 | 1029F | Lycianský | U10280 | viz Lycien |
102A0 | 102DF | Carien | U102A0 | viz Carianská abeceda |
102E0 | 102FF | Koptská čísla epaktů | U102E0 | viz koptština |
10300 | 1032F | Kurzíva | U10300 | viz stará kurzíva abeceda |
10330 | 1034F | gotický | U10330 | viz gotika |
10350 | 1037F | Starý perm | U10350 | viz starou permskou abecedu |
10380 | 1039F | Ugaritický | U10380 | viz ugaritská abeceda |
103A0 | 103FF | Starý Peršan | U103A0 | viz staroperština |
10400 | 1044F | Deseret | U10400 | viz Abeceda deseret |
10450 | 1047F | Shavien | U10450 | viz Shavian abeceda |
10480 | 104AF | Osmanya | U10480 | viz osmanská abeceda |
104B0 | 104FF | Osage | U104B0 | viz Osage |
10500 | 1052F | Elbasan | U10500 | viz skript Elbasan |
10530 | 1056F | Aghbanian | U10530 | viz Aghbanian abeceda |
10570 | 105FF | Rezervovat | - | - |
10600 | 1077F | Lineární A | U10600 | viz Lineární A |
10780 | 107FF | Rezervovat | - | - |
10800 | 1083F | Kyperská osnova | U10800 | viz kyperský syllabary |
10840 | 1085F | Imperiální aramejština | U10840 | viz aramejská abeceda |
10860 | 1087F | Palmyrenská abeceda | U10860 | viz palmyrenská abeceda |
10880 | 108AF | Nabataean | U10880 | viz nabatejská abeceda |
108B0 | 108DF | Rezervovat | - | - |
108E0 | 108FF | Hatrenian | U108E0 | viz Hatrénienova abeceda ( fr ) |
10900 | 1091F | fénický | U10900 | viz fénická abeceda |
10920 | 1093F | Lydian | U10920 | viz Lydian abeceda |
10940 | 1097F | Rezervovat | - | - |
10980 | 1099F | Meroitické hieroglyfy | U10980 | viz Meroitic script |
109A0 | 109FF | Meroitic Cursive | U109A0 | viz Meroitic script |
10A00 | 10A5F | Kharochthî | U10A00 | viz abeceda kharoshthi |
10A60 | 10A7F | Jižní arabština | U10A60 | viz jihoarabská abeceda |
10A80 | 10A9F | Severní arabština | U10A80 | viz staroarabský sever (en) |
10AA0 | 10ABF | Rezervovat | - | - |
10AC0 | 10AFF | Manichejský | U10AC0 | viz manichejská abeceda (en) |
10B00 | 10B3F | Avestický | U10B00 | viz Avestic Alphabet (en) |
10B40 | 10B5F | Parthské nápisy | U10B40 | viz parthské nápisy (en) |
10B60 | 10B7F | Pehlevi nápisů | U10B60 | viz pehlevi skript |
10B80 | 10 BAF | Pehlevi ze žaltářů | U10B80 | viz pehlevi písem , žaltář |
10BB0 | 10 BFF | Rezervovat | - | - |
10C00 | 10C4F | Orkhon | U10C00 | viz Orkhonská abeceda |
10C50 | 10C7F | Rezervovat | - | - |
10C80 | 10CFF | Starý maďarský | U10C80 | viz maďarské runy |
10D00 | 10E5F | Rezervovat | - | - |
10E60 | 10E7F | Rumi digitální symboly | U10E60 | viz postavy Fez , Fez |
10E80 | 10FDF | Rezervovat | - | - |
10FE0 | 10FFF | Elymaic | U10FE0 | viz Élymaïque (en) |
11000 | 1107F | Bráhman | U11000 | viz Brahmi |
11080 | 110CF | Khaithi | U11080 | viz Khaithi |
110D0 | 110FF | Sora sompeng | U110D0 | viz Alphabet sora sompeng (en) |
11100 | 1114F | Chakma | U11100 | viz Ojhapath |
11150 | 1117F | Mahajanî | U11150 | viz Mahâjanî (in) |
11180 | 111DF | Charada | U11180 | viz Alphasyllabary sharda |
111E0 | 111FF | Singhalese archaická čísla | U111E0 | viz Singhalese |
11200 | 1124F | Khojki | U11200 | viz Khojki (en) |
11250 | 1127F | Rezervovat | - | - |
11280 | 112AF | Multani | U11280 | viz Multani Alphabet (en) |
112B0 | 112FF | Khudabadi | U112B0 | viz Psaní Khudabadi (en) |
11300 | 1137F | Grantha | U11300 | viz Grantha |
11380 | 113FF | Rezervovat | - | - |
11400 | 1147F | Newa | U11400 | viz Alphabet Newa (en) |
11480 | 114DF | Tirhuta | U11480 | viz Tirhuta |
114E0 | 1157F | Rezervovat | - | - |
11580 | 115FF | Siddham | U11580 | viz Alphasyllabary siddham |
11600 | 1165F | Modi | U11600 | viz Modi Alphasyllabary |
11660 | 1167F | Mongolský doplněk | U11660 | viz mongolština |
11680 | 116CF | Takri | U11680 | viz Alphabet Takri (en) |
116D0 | 116FF | Rezervovat | - | - |
11700 | 1173F | Ahom | U11700 | viz Alphasyllabaire âhom |
11740 | 1189F | Rezervovat | - | - |
118A0 | 118FF | Warang citi | U118A0 | viz Warang Citi (en) |
11900 | 11999 | Rezervovat | - | - |
119A0 | 119FF | nandinâgarî | U119A0 | viz Nandinagari (en) |
11A00 | 11A4F | Kvadratický Zanabazar | U11A00 | vidět Zanabazar , mongolský |
11A50 | 11AAF | Sojombo | U11A50 | viz skript soyombo |
11AB0 | 11ABF | Rezervovat | - | - |
11AC0 | 11AFF | Paou brada haou | U11AC0 | viz Psaní Paou chin haou (en) |
11B00 | 11 BFF | Rezervovat | - | - |
11C00 | 11C6F | Bhaiksuki | U11C00 | viz abeceda Bhaiksuki (en) |
11C70 | 11CBF | Marchen | U11C70 | viz Zhang-zhung |
11CC0 | 11CFF | Rezervovat | - | - |
11D00 | 11D5F | Masaram gondi | U11D00 | viz Masaram Gondi (en) , Gondi |
11D60 | 11FBF | Rezervovat | - | - |
11FC0 | 11FFF | Tamilský doplněk | U11FC0 | viz Tamil |
12000 | 123FF | Klínové písmo | U12000 | viz klínové písmo |
12400 | 1247F | Interpunkční a klínová čísla | U12400 | viz klínové písmo |
12480 | 1254F | Klínové písmo archaických dynastií | U12480 | viz klínové písmo |
12550 | 12FFF | Rezervovat | - | - |
13000 | 1342F | Egyptské hieroglyfy | U13000 | viz egyptské hieroglyfické písmo |
13430 | 1343F | Ovládací prvky egyptského hieroglyfického formátování | U13430 | viz egyptské hieroglyfické písmo |
13440 | 143FF |
Vyhrazeno (část 1) (část 2) |
- | - |
14400 | 1467F | Anatolské hieroglyfy | U14400 | viz Anatolian Hieroglyphics |
14680 | 167FF |
Vyhrazeno (část 1) (část 2) (část 3) |
- | - |
16800 | 16A3F | Bamounský doplněk | U16800 | viz skript Bamoun |
16A40 | 16A6F | Mro | U16A40 | viz Language Mro (en) |
16A70 | 16ACF | Rezervovat | - | - |
16AD0 | 16AFF | Bassa | U16AD0 | viz Alphabet bassa |
16B00 | 16B8F | Pahawh hmong | U16B00 | viz Pahawh hmong |
16B90 | 16EFF | Rezervovat | - | - |
16F00 | 16F9F | Miao | U16F00 | viz Psaní Miao (en) |
16FA0 | 16FDF | Rezervovat | - | - |
16FE0 | 16FFF | Ideografické symboly a interpunkce | U16FE0 | viz Ideogram , psaní Tangut , Nüshu |
17000 | 187FF | Tangoute (část 1) (část 2) |
U17000 | viz psaní Tangoute |
18800 | 18AFF | Tangut komponenty | U18800 | viz psaní Tangoute |
18B00 | 1AFFF |
Vyhrazeno (část 1) (část 2) (část 3) |
- | - |
1B000 | 1B0FF | Doplněk Kana | U1B00 | viz japonština , japonské spisy , Kana |
1B100 | 1B12F | Rozšířená Kana A | U1B100 | viz japonština , japonské spisy , kana , hentaigana |
1B130 | 1B16F | Prodloužení malé kany | U1B130 | viz japonština , japonské spisy , kana , hentaigana |
1B170 | 1B2FF | Nüshu | U1B170 | viz Nüshu |
1B300 | 1BBFF | Rezervovat | - | - |
1BC00 | 1BC9F | Duplikovaná zkratka | U1BC00 | viz těsnopisu , Émile Duployé |
1BCA0 | 1CFFF |
Vyhrazeno (část 1) (část 2) |
- | - |
1D000 | 1D0FF | Byzantské hudební symboly | U1D000 | viz byzantská hudba |
1D100 | 1D1FF | Západní hudební symboly | U1D100 | viz západní hudba |
1D200 | 1D24F | Starořecká hudební notace | U1D200 | viz starořecká hudba |
1D250 | 1D2FF | Rezervovat | - | - |
1D300 | 1D35F | Nejvyšší tajemství klasické symboly | U1D300 | viz Tai Xuan Jing (en) |
1D360 | 1D37F | Čínské panáček | U1D360 | viz počítání pruhů |
1D380 | 1D3FF | Rezervovat | - | - |
1D400 | 1D7FF | Alfanumerické matematické symboly | U1D400 | viz Matematický symbol , latinka , arabské číslice |
1D800 | 1DAAF | Psaní Suttonových znamení | U1D800 | viz Psaní cedulí |
1DAB0 | 1DFFF | Rezervovat | - | - |
1E000 | 1E02F | Glagolitický doplněk | U1E000 | viz hlaholická abeceda |
1E030 | 1E0FF | Rezervovat | - | - |
1E100 | 1E14F | Nyiakeng puachue hmong | U1E800 | viz Nyiakeng puachue hmong (en) |
1E150 | 1E2DF | Rezervovat | - | - |
1E2C0 | 1E2FF | Wancho | U1E2C0 | viz Wancho |
1E300 | 1E7FF | Rezervovat | - | - |
1E800 | 1E8DF | Žebrání kikakui | U1E800 | viz Kikakui |
1E8E0 | 1E8FF | Rezervovat | - | - |
1E900 | 1E95F | Adlam | U1E900 | viz abeceda adlam |
1E960 | 1ECFF | Rezervovat | - | - |
1ED00 | 1ED4F | Čísla Syaq | U1ED00 | |
1ED50 | 1ECFF | Rezervovat | - | - |
1EE00 | 1EFF | Arabské symboly matematické abecedy | U1EE00 | viz arabská matematika |
1EF00 | 1EFFF | Rezervovat | - | - |
1F000 | 1F02F | Mahjong kousky | U1F000 | viz Mah-jong |
1F030 | 1F09F | Domino | U1F030 | viz Dominos |
1F0A0 | 1F0FF | Hrací karty | U1F0A0 | viz Hrací karty |
1F100 | 1F1FF | Kruhový alfanumerický doplněk | U1F100 | viz ARIB STD-B24 (en) |
1F200 | 1F2FF | Kruhový ideografický doplněk | U1F200 | viz ARIB STD-B24 (en) |
1F300 | 1F5FF | Různé symboly a piktogramy | U1F300 | viz piktogram , emodži |
1F600 | 1F64F | Emotikony | U1F600 | viz emotikony , emodži |
1F650 | 1F67F | Okrasná kazeta | U1F650 | viz Wingdings |
1F680 | 1F6FF | Dopravní a kartografické symboly | U1F680 | viz Doprava , Kartografie , Emodži |
1F700 | 1F77F | Alchymistické symboly | U1F700 | viz Alchymie |
1F780 | 1F7FF | Rozšířené geometrické tvary | U1F780 | viz Geometrický tvar |
1F800 | 1F8FF | Šipky doplněk C. | U1F800 | viz šipka |
1F900 | 1F9FF | Další symboly a piktogramy | U1F900 | viz piktogram , emotikony , emodži |
1FA00 | 1FA6F | Rezervovat | - | - |
1FA70 | 1FAFF | Symboly a piktogramy rozšířené-A | U1FA70 | viz piktogram , emodži |
1FB00 | 1FFFF | Rezervovat | - | - |
Kódové body | Oficiální název bloku | Zjistit více | |
---|---|---|---|
Start | Konec | ||
20 000 | 2A6DF | CJC Unified Ideograms Supplement B ( Část 1 ) ( Část 2 ) ( Část 3 ) ( Část 4 ) ( Část 5 ) ( Část 6 ) ( Část 7 ) ( Část 8 ) ( Část 9 ) ( Část 10 ) ( Část 11 ) |
viz čínština, japonština a korejština |
2A6E0 | 2A6FF | Rezervovat | - |
2A700 | 2B73F | Dodatek C k jednotným ideogramům CJC ( část 1 ) ( část 2 ) |
viz čínština, japonština a korejština |
2B740 | 2B81F | Doplňte D k sjednoceným ideogramům CJC | viz čínština, japonština a korejština |
2B820 | 2 CEAF | Dodatek E ke sjednoceným ideogramům CJC | viz čínština, japonština a korejština |
2CEB0 | 2EBEF | Dodatek F k sjednoceným ideogramům CJC | viz čínština, japonština a korejština |
2EBF0 | 2F7FF | Rezervovat | - |
2F800 | 2FA1F | Dodatek k ideogramům o kompatibilitě s CJC | viz čínština, japonština a korejština |
2FA20 | 2FFFF | Rezervovat | - |
Kódové body | Oficiální název bloku | Zjistit více | |
---|---|---|---|
Start | Konec | ||
30 000 | 3FFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
Plán 3 |
40 000 | 4FFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
Plán 4 |
50 000 | 5FFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
Plán 5 |
60 000 | 6FFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
Plán 6 |
70 000 | 7FFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
Plán 7 |
80 000 | 8FFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
Plán 8 |
90 000 | 9FFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
Plán 9 |
A0000 | AFFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
Plán 10 |
B0000 | BFFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
Plán 11 |
C0000 | CFFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
Plán 12 |
D0000 | DFFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
Plán 13 |
Kódové body | Oficiální název bloku | Komentáře | |
---|---|---|---|
Start | Konec | ||
E0000 | E007F | Štítky | |
E0080 | E00FF | Rezervovat | - |
E0100 | E01EF | Doplněk selektorů variant | |
E01F0 | EFFFF |
Vyhrazeno ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
- |
Kódové body | Oficiální název bloku | Oficiální PDF | Komentáře | |
---|---|---|---|---|
Start | Konec | |||
F0000 | FFFFF |
Další zóna A pro soukromé použití ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( Část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
UF0000 | Žádná oficiálně definovaná vlastnost |
100 000 | 10FFFF |
Další zóna B pro soukromé použití ( část 1 ) ( část 2 ) ( část 3 ) ( část 4 ) ( část 5 ) ( část 6 ) ( část 7 ) ( část 8 ) ( část 9 ) ( část 10 ) ( část 11 ) ( Část 12 ) ( Část 13 ) ( Část 14 ) ( Část 15 ) ( Část 16 ) ( Část 17 ) |
U100000 | Žádná oficiálně definovaná vlastnost |
Oblasti pro soukromé použití neobsahují stejné oči od jednoho písma k druhému, a proto je třeba se jim vyhnout při kódování textů určených pro výměnu mezi heterogenními systémy. Tyto body kódu pro soukromé použití jsou však platné a lze je použít v jakémkoli automatizovaném zpracování v souladu se standardy Unicode a ISO / IEC 10646 , včetně mezi různými systémy, pokud existuje soukromá vzájemná dohoda ohledně jejich použití.
Při absenci dohody mezi oběma stranami mohou systémy používající tyto znaky odmítnout texty, které je obsahují, protože zpracování, kterému jsou vystaveny, nemůže fungovat správně nebo způsobit bezpečnostní problémy; jiné systémy, které těmto znakům nepřisuzují žádnou speciální funkci, je naopak musí přijmout jako platné a uchovat je jako nedílnou součást textů, jako by to byly grafické symboly, i když neví, jak je zobrazit správně.
Non-znaky jsou platné body kódu, ale nejsou (a nikdy nebudou) přiřazeny standardizovaným znakům. Jejich použití při kódování textů přenášených mezi systémy (i když jsou identické) je zakázáno, protože je nemožné zajistit jejich kompatibilitu se standardizovanými univerzálními transformačními formami (včetně UTF-8, UTF-16, UTF-32) s odpovídajícím kódováním a jiné standardizované kódování kompatibilní s Unicode a ISO / IEC 10646 ( BOCU -1, SCSU , různými verzemi čínskou normou GB 18030 , atd ). Některé systémy je však generují a používají místně, ale pouze pro přísně interní zpracování, které má usnadnit implementaci algoritmů zpracování textu pomocí dalších standardizovaných znaků.
Mezi těmito posledními neznaky jsou platné body kódu vyhrazené pro poloviční zóny (soukromé nebo jiné). Tyto body kódu nelze použít jednotlivě ke kódování postavy. Používají se pouze pro univerzální transformační formu UTF-16 (a odpovídající schémata kódování) k reprezentaci dvou kódových bodů (každý po 16 bitech) platných kódových bodů v jedné ze 16 doplňkových rovin (určité kombinace kódových bodů odpovídají platným znakům tyto plány, standardní nebo soukromé, jiné kombinace nemusí představovat žádný platný znak, protože by odpovídaly neznakům těchto doplňkových plánů, a proto jsou v textech odpovídajících normě zakázány).
Ostatní volné oblasti (nepřiřazené standardizovanému pojmenovanému bloku nebo kódové body ponechané volné a rezervované ve stávajících pojmenovaných blocích) jsou vyhrazeny pro budoucí použití v budoucích verzích Unicode a ISO / IEC 10646 , ale jsou platné. Jakýkoli systém zabývající se texty obsahujícími tyto vyhrazené body kódu je musí přijmout, aniž by je filtroval. Unicode definuje výchozí vlastnosti pro hypotetické odpovídající znaky, aby byla zachována kompatibilita systémů (vyhovujících standardu Unicode) s budoucími vyhovujícími texty, které je obsahují. Žádná vyhovující aplikace by jim neměla přiřadit speciální znak nebo sémantiku (pro toto použití jsou určeny soukromé oblasti).