Unicode

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:

Abecední

[L] ogografický a [S] yllabický


Východní Asie [L]

Abjad (semitské jazyky)

Abugida

Fotbalová branka

Tabulky Unicode (plán 0) Klíčové údaje
0000 - 0FFF 8000 - 8FFF
1000 - 1FFF 9000 - 9FFF
2000 - 2FFF A000 - AFFF
3000 - 3FFF B000 - BFFF
4000 - 4FFF C000 - CFFF
5 000 - 5FFF D000 - DFFF
6000 - 6FFF E000 - EFFF
7000 - 7FFF F000 - FFFF
Další plány Unicode
0000 - FFFF plán 0 (PMB / BMP )
10 000 - 1FFFF plán 1 (PMC / SMP )
20 000 - 2FFFF plán 2 (PSC / SIP )
30 000 - 3FFFF plán 3 (PST / TIP )
40 000 - DFFFF záběry 4–13 (vyhrazeno)
E0000 - EFFFF plán 14 (PCS / SSP )
F0000 - FFFFF plán 15 (soukromý A)
100 000 - 10FFFF plán 16 (soukromý B)

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 ).

Standardizace

Interoperabilita

Ve své podobě UTF-8 nabízí Unicode určitou interoperabilitu s ASCII kódem .

Dodržování

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.

Omezení

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 .

Normy a verze

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

Vrstvy Unicode

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á 46  číslic  :

  • 4 číslice pro popředí, nazývané základní vícejazyčný plán (tedy mezi U + 0000 a U + FFFF);
  • 5 číslic pro následujících 15 plánů (mezi U + 10 000 a U + FFFFF);
  • 6 číslic pro poslední plán (mezi U + 100 000 a U + 10FFFF).

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 .

Bajtový limit

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:

  • Mezinárodní pracovní skupina ISO standardizuje přidělování kódových bodů znakům, jejich oficiálnímu názvu a vyhrazuje bloky kódových bodů používané každým skriptem nebo skupinou skriptů. Také dokumentuje možné grafické znázornění (orientační) pro každý znak (toto grafické znázornění je pokud možno jednoznačné díky umístění standardizovaných znaků do příslušných bloků kódu pro omezený počet skriptů).
  • Pracovní skupina konsorcia Unicode přesněji (ve standardu Unicode) standardizuje jejich sémantiku pro automatické zpracování díky tabulkám vlastností znaků a vývoji standardních algoritmů využívajících tyto vlastnosti.
  • Tyto dva normalizační orgány spolupracují na neustálé synchronizaci svého standardizovaného repertoáru do oficiálních verzí, na které odkazují, a společně pracují na změnách (verze se nestanou oficiálními, dokud oba orgány nemají schválené a plně definované nové dodatky. Znaky).
  • V praxi se pro většinu vývojářů aplikací norma ISO / IEC 10646 jeví jako podmnožina úplnějšího standardu Unicode, ale má stejné body kódu pro přesně stejnou znakovou sadu jako standard. Unicode (proto je standard Unicode známější, protože je vhodnější pro počítačové zpracování a také zdarma dostupné na internetu).

Universal Transformation Format (UTF)

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-8

UTF-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 , 24  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áty
  • Některé programy (například databáze Oracle ), které interně představují svá data Unicode ve formátu UTF-16, mají (nebo již zažily) poruchu převodu na UTF-8: znak mezi U + 10 000 a U + 10FFFF, uložený ve dvou 16- bit slova, je převeden na UTF-8 jako posloupnost dvou znaků Unicode. To vedlo k „náhodnému“ vytvoření CESU-8 a má tu výhodu, že usnadňuje používání Unicode na 16bitových platformách.
  • Znak Unicode nulový U + 0000 je kódován v UTF-8 jako jediný nulový bajt 0x00 . Podle standardu Unicode nemá tento znak žádný zvláštní význam; nicméně (z historických koncepčních důvodů) považují knihovny pro zpracování řetězců jazyka C tento řídicí znak za konec řetězce, což komplikuje implementaci některých aplikačních případů . Pod platformou Java  se zrodila verze „  (en) Modified UTF-8 “ využitím „16bitové“ přenositelnosti CESU-8 a přidáním možnosti kódování U + 0000 pod sekvenci 0xC0 0x80. (obvykle zakázáno v UTF-8): výměnou tímto způsobem s nativními C knihovnami podporované platformy může platforma snadno spravovat všechny platné texty Unicode i kompilované soubory tříd (přenosný alternativní formát, nezávislý na endianness a slově velikost).
UTF-16

UTF-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 .

Kódování UTF-16
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:

  • odečíst 0x10000 od bodu kódu a ponechat 20bitové číslo v rozsahu 0x00 až 0xFFFFF;
  • 10 nejvýznamnějších bitů (číslo mezi 0x00 a 0x3FF) je přidáno k 0xD800 a dává první kódovou jednotku ve vysoké poloviční zóně ( 0xD800 až 0xDBFF );
  • 10 nejméně významných bitů (číslo mezi 0x00 a 0x3FF) je přidáno k 0xDC00 a dává druhou kódovou jednotku v nízké poloviční zóně ( 0xDC00 až 0xDFFF );

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-32

UTF-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í.

Čínský standard GB 18030

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.

Písma Unicode

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.

Technické údaje

Softwarové knihovny

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:

Typy kompatibilní s Unicode v programovacích jazycích
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
Poznámky
  1. v UTF-8
  2. Všimněte si však, že typ wchar_tjazyka C ne vždy umožňuje kódování všech znaků Unicode, protože standard tohoto jazyka neposkytuje dostatečný minimální počet pro tento standardní typ. Mnoho překladačů jazyka však definuje wchar_t32 bitů (nebo dokonce 64 bitů v prostředích zpracovávajících standardní 64bitová celá čísla), což je dostatečné pro uložení jakéhokoli bodu standardizovaného kódu Unicode. Ale jiné kompilátory představují wchar_tna 16 bitech (zejména v systému Windows v prostředí 16 nebo 32 bitů), dokonce pouze na 8 bitech (zejména v integrovaných prostředích, která nemají obecný operační systém), protože wchar_tmohou používat stejnou reprezentaci jako typ, charkterý má minimálně 8 bitů.
  3. Podobným způsobem jako v C a C ++ má jazyk Java typ jednotky, který umožňuje kódovat 16 bitů, ale neumožňuje kódovat jediný bod kódu jakékoli hodnoty (nativním typem charje pouze kladné 16bitové celé číslo) . Chcete-li manipulovat se standardizovanými znaky mimo popředí, musíte použít pár kódových bodů, z nichž každý obsahuje hodnotu rovnající se dvěma kódovým bodům definovaným formulářem UTF-16. Také typy objektů Stringnebo char[2]jsou nejvhodnější pro reprezentaci znaku Unicode. Od prostředí Java 1.4.1 poskytuje standardní knihovna plnou podporu Unicode díky nativnímu typu int(což je celé číslo definované na 32 bitech) a statickým metodám standardní třídy Character(instanční objekt tohoto typu Characterto však neumožňuje, stejně jako nativní typ char, pro uložení libovolného bodu kódu).
  4. JavaScript má různé nestandardizované implementace, některé starší, které nepodporují více než 16 bitů na znak a někdy pouze 8 bitů. Standard ECMAScript tohoto jazyka však definuje třídu obsluhy Characterna 32 bitech (ve skutečnosti založenou na třídě Number), která musí podporovat všechny kódové body 17 standardizovaných plánů, zatímco řetězce znaků používají povinně kódované znaky na 16 bitech (ale bez omezení posilující párování kódových jednotek UTF-16, přičemž řetězce typu ECMAScript Stringnejsou omezeny na jediné kódování UTF-16, ale jsou vektory celočíselných konstant kódovaných na 16 bitech bez omezení, aby byla zajištěna (interoperabilita s Javou a dalšími jazyky, které také nevynucují omezení shody UTF-16 ve svých nativních datových typech). Tyto dva jazyky nepodporují explicitní zadávání proměnných, přičemž typ je dynamicky definován hodnotami, které jsou jim přiřazeny (je také možné několik interních reprezentací, jejichž rozdíly jsou pro programátora obvykle transparentní).

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 ).

Rozdělení na oddíly

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
Doplňkový vícejazyčný plán (PMC, 10 000 až 1FFFF)
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 - -
Doplňkový ideografický plán (PIC, 20000 až 2FFFF)
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 -
Doplňkové plány vyhrazeny (30 000 až DFFFF)
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
Specializovaný doplňkový plán (PCS, E0000 až EFFFF)
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 )
-
Další plány pro soukromé použití (F0000 až 10FFFF)
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).

Poznámky a odkazy

  1. (in) „  Oznámení standardu Unicode®, verze 12.0  “ na blogu Unicode ,5. března 2019
  2. (en) [1] .
  3. (in) „  Statistiky používání kódování znaků pro webové stránky, leden 2017  “ na webu w3techs.com (přístup k 6. lednu 2017 ) .
  4. „  Unicode 7.0 přidává 250 emodži včetně prostředního prstu  “ , na nextinpact.com ,16. června 2014(zpřístupněno 20. ledna 2016 ) .
  5. (in) „  Unicode 8 : Co a kdy  “ na emojipedia.org ,17. června 2015(zpřístupněno 20. ledna 2016 ) .
  6. (in) „  Unicode® 9.0.0  “ na http://unicode.org/ (přístup 23. dubna 2018 ) .
  7. (in) „  Unicode® 10.0.0  “ na http://unicode.org/ (přístup 23. dubna 2018 ) .
  8. (in) „  Unicode® 11.0.0  “ na http://unicode.org/ (přístup 23. dubna 2018 ) .
  9. (in) „  Unicode® 12.0.0  “ na http://unicode.org/ (přístup 6. března 2019 ) .
  10. Inc Unicode , „  Announcing The Unicode® Standard, verze 13.0  “ (přístup 26. května 2020 )
  11. (in) Unicode Technical Report # 17: Unicode Character Encoding Model .
  12. (v) "  UTF-8, transformační formáty ISO 10646  ," Žádost o připomínky n o  3629,listopadu 2003.
  13. (in) Unicode Standard, verze 5.0 , kapitola 16  : Speciální oblasti a znaky formátu [PDF] - Unicode, Inc., s.  354 .
  14. Sekvence UTF-8 by měly být co nejkratší. Toto omezení musí být zaškrtnuto, aby se zabránilo určitým zranitelnostem zabezpečení, například „/../“ - viz podrobnosti v části „Nevýhody“ článku UTF-8 .
  15. (in) „  kód v Apache Xalan 2.7.0 qui můžeme selhat náhradní páry  “ , Apache Foundation .
  16. http://unicode.org/charts/PDF/U2B820.pdf
  17. http://unicode.org/charts/PDF/U2CEB0.pdf
  18. http://unicode.org/charts/PDF/U2EBF0.pdf
  19. http://unicode.org/charts/PDF/U30000.pdf
  20. http://unicode.org/charts/PDF/U40000.pdf
  21. http://unicode.org/charts/PDF/U50000.pdf
  22. http://unicode.org/charts/PDF/U60000.pdf
  23. http://unicode.org/charts/PDF/U70000.pdf
  24. http://unicode.org/charts/PDF/U80000.pdf
  25. http://unicode.org/charts/PDF/U90000.pdf
  26. http://unicode.org/charts/PDF/UA0000.pdf
  27. http://unicode.org/charts/PDF/UB0000.pdf
  28. http://unicode.org/charts/PDF/UC0000.pdf
  29. http://unicode.org/charts/PDF/UD0000.pdf
  30. http://unicode.org/charts/PDF/UE0080.pdf
  31. http://unicode.org/charts/PDF/UE01F0.pdf

Podívejte se také

Související články

externí odkazy

Normativní odkazy Informační odkazy
  • (fr) Oficiální francouzský překlad norem ISO / IEC 10646 a Unicode .
  • (fr) Unicode 5.0 v praxi , Patrick Andries, publikoval Dunod (Dubna 2008) - příručka.
  • (en) RFC 1641  : Používání Unicode s MIME - experimentální (Červenec 1994)
  • (en) RFC 2152  : UTF-7, A Mail-Safe Transformation Format of Unicode - experimentální (Květen 1997); nahrazuje RFC 1642 (zastaralé)
  • (en) RFC 2482  : Označování jazyků v prostém textu Unicode - informativní (Leden 1999)
  • (en) RFC 3718  : Summary of Unicode Consortium Procedures, Policies, Stability, and Public Access - informative (Února 2004)
  • (en) RFC 5891  : Internacionalizovaná doménová jména v aplikacích (IDNA): Protokol - navrhovaný standard; nahrazuje RFC 3490 a RFC 3491 (zastaralé), aktualizuje RFC 3492 Punycode
  • (in) Unicode - The Movie Všech 109 109 znaků Unicode 6.0 v jediném filmu
Tabulky a data Uživatelské příručky Diskuze a články