Unicode

Az Unicode egy számítógépes szabvány, amely lehetővé teszi a különböző nyelvű szövegek cseréjét globális szinten. Az Unicode konzorcium fejlesztette ki , amelynek célja az írott szöveg kódolása azáltal, hogy bármely írórendszer bármely karakterének nevet és numerikus azonosítót ad, egységes módon, függetlenül a számítógépes platformtól vagy a használt szoftvertől .

Ez a szabvány kapcsolódik a szabványos ISO / IEC 10646 ismertet egy táblázatot az azonos karakter. A legújabb verzió, az Unicode 13.0 , 2008 - ban jelent meg 2020 március.

Az ISO / IEC 10646 univerzális karakterkészlettel (UIC) teljesen kompatibilis Unicode szabvány kiterjeszti az ábrázolás és szövegszerkesztés teljes modelljének hozzáadásával, így az egyes karakterek tulajdonságok halmazát kapják (amelyek egyesek lehetnek szabványosítva és stabilizálva az Unicode összes verziója, ahol a karakter kódolva van, vagy informatív, csak ajánlás a használatukra, amely a megtalált új igényeknek megfelelően alakulhat). Ezek a tulajdonságok pontosan leírják azokat a szemantikai kapcsolatokat, amelyek a szöveg több egymást követő karaktere között létezhetnek, és lehetővé teszik olyan algoritmusok szabványosítását vagy ajánlását, amelyek a lehető legjobban megőrzik az átalakított szövegek szemantikáját. Az Unicode célja, hogy ugyanazt a szöveget teljesen más számítógépes rendszereken azonos módon lehessen felhasználni.

Az Unicode szabvány egy 143 859 karakterből álló repertoárból áll, amely több mint 150 szkriptet tartalmaz, egy kódtábla készletet a vizuális hivatkozáshoz, egy kódolási módszert és számos szabványos karakter kódolást, egy felsorolás karakter tulajdonságait (nagybetűk, kisbetűk, APL , szimbólumok, írásjelek) ,  stb ), egy sor referencia számítógépes adatállományok, valamint számos kapcsolódó elemek, mint a normalizáció szabályokat, kétirányú bomlás, válogatás, renderelő és megjelenítési sorrendjét (a szöveg helyes megjelenítésének egyaránt tartalmazó jobbra-balra karakterek, például arab és héber, valamint balról jobbra).

A gyakorlatban Unicode teljes mértékben egyesíti az ISO / IEC 10646 , mivel az utóbbi szabványosítja csak egyes karaktereket hozzárendelésével nekik egy nevet és egy normatív szám ( a kód pont ), és egy nagyon korlátozott informatív leírást, de semmiféle feldolgozást vagy leírás. Vagy javaslatot tesz az használat valódi nyelvek írásában, amelyet csak az Unicode szabvány határoz meg pontosan. Az ISO / IEC 10646 normatív módon hivatkozik az Unicode szabvány egyes részeire (beleértve a kétirányú algoritmust és a karakter tulajdonságokat  (in) ); Az Unicode de facto szabvány a szövegszerkesztésben is, és számos más szabvány alapjául szolgál.

Írott nyelvek:

Betűrendes

[L] ogográfiai és [S] yülabikus


Kelet-Ázsia [L]

Abjad (szemita nyelvek)

Abugida

Cél

Unicode táblák (0. terv) Kulcsadatok
0000 - 0FFF 8000 - 8FFF
1000 - 1FFF 9000 - 9FFF
2000 - 2FFF A000 - AFFF
3000 - 3FFF B000 - BFFF
4000 - 4FFF C000 - CFFF
5000 - 5FFF D000 - DFFF
6000 - 6FFF E000 - EHA
7000 - 7FFF F000 - FFFF
Egyéb Unicode-tervek
0000 - FFFF 0. terv (PMB / BMP )
10 000 - 1FFFF 1. terv (PMC / SMP )
20 000 - 2FFFF 2. terv (PSC / SIP )
30 000 - 3FFFF 3. terv (PST / TIP )
40 000 - DFFFF 4–13. lövés (fenntartva)
E0000 - EFFFF 14. terv (PCS / SSP )
F0000 - FFFFF 15. terv (A privát)
100 000 - 10FFFF 16. terv (B magán)

Unicode, amelynek első publikációja ide nyúlik vissza 1991. október, a nemzeti kódlapok használatának helyettesítésére fejlesztették ki .

Ezeknek a kódoldalaknak korábban voltak problémáik. Például az EBCDIC-ben működő 3270 terminálon  : ha egy elektronikus jegyzetben szerepel egy "valutajel" karakter, az amerikai olvasó számára az dollárra fordított kiadások felső határa egy brit képernyőn ugyanannyit jelenít meg fontban , mivel a pénznem jel mindkét országban más és más volt.

A gyakorlatban az összes írórendszer még nincs jelen, mert a szakemberekkel végzett dokumentációs kutatómunka továbbra is szükségesnek bizonyulhat ritka karakterek vagy kevéssé ismert írórendszerek esetében (mert például eltűntek).

A világon leggyakrabban használt szkriptek, valamint a karakterek szemantikájára , azok kompozícióira és e különböző rendszerek kombinálására vonatkozó szabályok képviseltetik magukat . - Például hogyan lehet jobbról balra író rendszert beilleszteni egy balról jobbra író rendszerbe ( kétirányú szöveg ).

Szabványosítás

Átjárhatóság

Az Unicode UTF-8 formájában kínál némi interoperabilitást az ASCII kóddal .

Megfelelés

Az Unicode szabvány meghatározza a folyamat (vagy szoftver) megvalósításának az Unicode-nak való megfelelésének értékelésére vonatkozó követelményeket . Ezek a követelmények különösen (a 4.0 verzióban ):

Ezek a követelmények lehetővé teszik az Unicode egy részhalmazának támogatását.

Míg az ISO / IEC 10646 ugyanazt a karakterkészletet definiálja, mint az Unicode, az ISO / IEC 10646 és az Unicode közötti különbség elsősorban az Unicode által biztosított túlzott megfelelőségi követelménynek tudható be.

Korlátozások

Az Unicode 2016-ban a számítógépes karakterkódolás vezető szabványa. A szoftver interoperabilitására használják, és lehetővé teszi például a szövegek másolását különböző ábécék karaktereivel a különböző szoftverek között, még akkor sem, ha azokat kifejezetten rájuk tervezték (például APL karakterekkel ellátott program egy LibreOffice szövegben vagy e-mailben a Gmail alatt ). Azonban nem minden Unicode szöveg van kódolva egyformán. Az elfogadott Unicode szabványosítástól függően ugyanaz a grafikus jel néha különböző módon kódolható. Néhány szövegében a NFC egyezmény , mások a NFD egyezmény ,  stb És a szabvány nem tiltja több konvenció keverését ugyanabban a szövegben. Ugyanez vonatkozik a szoftverekre is.

A hackerek a 2000-es években kihasználták ugyanazon írás többféle módjának együttélését, lehetővé téve számukra, hogy megkerüljék a szűrőket: a hackerek megkerülik bizonyos veszélyesnek tartott húrok tilalmát, egyszerűen más formában kódolva őket., Szokatlanabbak, ezért néha szűretlenek.

Az Unicode reagál ezekre a korlátozásokra a kanonikus ekvivalencia fogalmának megadásával .

Szabványok és változatok

Az Unicode-on végzett munka párhuzamos és szinkronizált az ISO / IEC 10646 szabvány munkájával, amelynek céljai megegyeznek. Az ISO / IEC 10646 , francia és angol nyelven kiadott nemzetközi szabvány, amely nem határozza meg a karakterek összetételének szabályait vagy a karakterek szemantikai tulajdonságait.

Az Unicode azonban foglalkozik a kis- és nagybetűk , az ábécésorrend , valamint az ékezetek és karakterek kombinációjával . Mivel az Unicode 1.1-es verziója és minden további verziója óta a karakterek azonosítóval rendelkeznek, mint az ISO / IEC 10646 szabványé  : a könyvtárakat párhuzamosan tartják fenn, azonosak a végleges szabványosítás során, a két szabvány szinte egyszerre frissül. A két szabványos Unicode (az 1.1-es verzió óta ) és az ISO / IEC 10646 biztosítja a teljes visszamenőleges kompatibilitást: minden olyan szövegnek, amely megfelel egy korábbi verziónak, a későbbi verziókban is meg kell felelnie.

Így az Unicode 3.0 verziójának karakterei az ISO / IEC 10646: 2000 szabvány karakterei . Az Unicode 3.2-es verziója 95 221 karaktert, szimbólumot és irányelvet rangsorolt.

Az Unicode 4.1-es verziója , frissítve 2005. november, a következőket tartalmazza:

azaz összesen csaknem 245 000 kódpont van hozzárendelve egy olyan helyre, amely 1 114 112 különböző kódot tartalmazhat.

Úgy tűnik azonban, hogy vannak problémák a kínai karakterek kódolásával kapcsolatban , a különböző nyelvekben használt ideográfiai halmazok egyesítése miatt, kissé eltérő és néha értelmes kalligráfiával, de ezeket a szelektorokat meghatározó Unicode oldja meg. megnyitotta az őket használó szabványos szekvencia-nyilvántartást.

Változat Megjelenés dátuma Új karakterek
1.0.0 1991. október
1.0.1 1992. június
1.1 1993. június
2.0 1996. július
2.1 1998. május
3.0 1999. szeptember
3.1 2001. március
3.2 2002. március
4.0 2003. április
4.1 2005. március
5.0 2006. július
5.1 2008. március
5.2 2009. október
6.0 2011. február
6.1 2012. január 31
7.0 2014. június 16 2834 új karakter, hangulatjelekkel együtt .
8.0 2015. június 17 7716 karakter, köztük sok hangulatjel.
9.0 2016. június 21 7500 új karakter (köztük 72 hangulatjel).
10.0 2017. június 20 8518 új karakter (köztük 56 hangulatjel).
11.0 2018. június 5 684 új karakter (köztük 66 hangulatjel).
12.0 2019. március 5 554 új karakter.
13.0 2020. március 10 5390 új karakter

Unicode rétegek

Az Unicode-ot egy réteges modell szerint definiáljuk ( Műszaki megjegyzés: Unicode n o  17 ). Más szabványok általában nem tettek különbséget a karakterkészlet és a fizikai ábrázolás között. A rétegeket itt mutatjuk be a legmagasabbtól (a géptől legtávolabb).

Absztrakt karakterek katalógusa (absztrakt karakter repertoár )

A legfelső réteg a karakterkészlet definíciója. Például a Latin-1 256 karakterkészlettel rendelkezik, míg az Unicode jelenleg közel 110 000 karaktert szabványosít. Ezenkívül az Unicode mindegyik karakterhez nevet rendel.

A nevükben szereplő karakterek listája tehát az Unicode alkalmazásréteget képezi.

Például a Ç karakter neve "latin nagybetű c cedilla".

Ez a meghatározás teljesen megegyezik az ISO / IEC 10646 definíciójával , amely jóváhagyja a könyvtár bármely kiterjesztését. Az Unicode csak angol nyelven használja a normatív neveket a szabvány szövegében, de az ISO / IEC 10646 szabvány két ugyanolyan normatív nyelven jelenik meg. Így az angol és a francia név egyaránt szabványosított.

Valójában a címtár bármilyen kiterjesztését most az ISO / IEC 10646-ért felelős munkacsoport ( JTC1 / SC2 / WG2 , amelynek szavazó tagjai csak a részt vevő országok nemzeti szabványügyi hatóságai, vagy hivatalos képviselőjük), és a Az Unicode UTC technikai bizottsága (amelynek szavazó tagjai lehetnek bármely magán- vagy közérdekű szervezet, vagy akár egy kormány, amely csatlakozott és éves díjat fizet azért, hogy részt vegyen a döntésekben).

Kódolt karakterkészlet ( kódolt karakterkészlet )

Itt minden karakterhez tartozó szám hozzáadódik az előző táblához. Megjegyzendő, hogy ez nem egy képviselet memóriát, csak egész szám, az úgynevezett egy kódot pont . Ezen számok kódolási területe 65 536 kódpont 17 területére van felosztva. Ezeket a területeket síknak nevezzük .

A kód pontot kell jegyezni az „U + xxxx”, ahol „xxxx” hexadecimális és 4 , hogy 6-  számjegy  :

  • 4 számjegy az előtérben, az úgynevezett többnyelvű alapterv (ezért U + 0000 és U + FFFF között);
  • 5 számjegy a következő 15 tervhez (U + 10 000 és U + FFFFF között);
  • 6 számjegy az utolsó tervhez (U + 100 000 és U + 10FFFF között).

Így a "c cedilla latin nagybetűvel" (Ç) nevű karakter U + 00C7 számmal rendelkezik. Az előtérbe tartozik.

Elvileg az összes kódpont elérhető az U + 0000 és az U + 10FFFF között, de bizonyos intervallumokat állandóan bizonyos felhasználásokra fenntartanak, különös tekintettel egy kizárt indirekciós zónára, amely lehetővé teszi az UTF-16 kódolást ( lásd alább), a magáncélú területekre és egyes régiók (pl. U + FFFE vagy U + FFFF) olyan nem karaktereket tartalmaznak, amelyek használata a megfelelő adatcserében tilos. A többi kódpontot már vagy hozzárendelték a karakterekhez, vagy fenntartották a későbbi szabványosításhoz.

Zóna magáncélú használatra: Az Unicode sok kódpontot rendelt érvényes karakterekhez, de amelyek szemantikája magánhasználat miatt ismeretlen (például az U + F0000 és az U + 10FFFF közötti utolsó két terv teljes egészében erre a felhasználásra van szánva, a két kód kivételével pontok az egyes tervek végén, amelyek tiltott nem karakterek a megfelelő szövegben).

A kódolási szabványosítás, vagyis a kódpontok karakterekhez való hozzárendelése a közös repertoárban itt is az Unicode és az ISO / IEC 10646 szabványok közös döntése . A könyvtár összes karakterének egyedi kódpontja van (még akkor is, ha egyes nyelvek vagy az Unicode esetében néhány karakter ekvivalensnek tekinthető).

Megjegyezhetõ, hogy ha a karakterkönyvtár kibõvíthetõ, akkor azt a kódolási tér felsõ határa korlátozza: U + 10FFFF. A lehetséges kódpontok nagy többsége nem kapcsolódik egyetlen karakterhez sem, de bármikor előfordulhat.

Ezeket a még mindig szabad kódpontokat nem tekintjük érvénytelennek, de elvont karaktereket képviselnek (még nincs megadva, és ideiglenesen fenntartva vannak). Ezek az absztrakt karakterek (csakúgy, mint a magáncélú karakterek) kiegészítik a szabványosított könyvtár kódolt karakterkészletét egyetlen játéknak, az úgynevezett "  univerzális kódolt karakterkészletnek  " ( univerzális kódolt karakterkészletnek , gyakran UCS- ként rövidítve ), amely tartalmazza a könyvtárak összes kódolt karakterkészletét az ISO / IEC 10646 és az Unicode korábbi, jelenlegi és jövőbeli verzióinak mindegyike ( csak az 1.1-es verzió óta ).

Formalizmus karakterkódolás ( karakterkódolási forma )

Ezúttal érkezik egy fizikai reprezentációja (a memóriában, lemez, stb): ez a réteg meghatározza, hogy mely kódoló egység ( kód egység ), vagy codet fogja képviselni egy karakter, pontosabban egy kódot pont: byte , seizet  (a ) (16 bites szó) vagy harminc deuzet  (en) (32 bites szó).

E formalizmusok közül több is lehet (és van is). Egy adott formalizmusnak meg kell határoznia a kódoló egység méretét, és meg kell jelölnie, hogy a kódpontot ábrázoló egész szám hogyan jelenik meg a kódoló egységek sorozatában - és fordítva, vagyis hogyan lehet megtalálni a kódolási egységek sorozatának adott kódpontot.

Mechanizmus sorosítási karakterek ( karakterkódolási séma )

Ez a réteg gondoskodik az előző réteg által meghatározott kódoló egységek szekvenciájának bájtsorozattá történő sorosításáról. Itt választják meg a bájtok sorrendjét a big-endian (először a legjelentősebb bájt) és a kis-endian (először a legkevesebb bájt) között.

Ebben a lépésben hozzáadható egy bájt sorrendjelző (vagy BOM, a bájt sorrendjéhez ), amely a fájl vagy adatfolyam elején jelzi, hogy big-endian vagy little-endian-e. Az internetes világban ritkán használják, előnyben részesítve az explicit jelölést (például "  charset = UTF-16BE  " a MIME- ban, hogy jelezze a nagy endián adatfolyamot, ahol a BE a nagy endiánt jelenti ).

Túlkódolás átvitele ( átviteli kódolás szintaxisa )

Itt választható tömörítési vagy titkosítási mechanizmusok.

Előfordulhat olyan túlkódolás is, mint az LDAP esetében, amely meghatározza, hogy az Unicode karakterláncokat UTF-8-ban és az Base64 -ben kell kódolni .

Bájtkorlát

A korábbi szabványok (bitek sorozata, ábrázolása) merev korlátozásainak leküzdése érdekében az Unicode ezentúl elválasztja egyrészt a karakterkészlet definícióját (a karakterek listáját név szerint), másrészt a kódolás indexét, a kódpontot . Így tehát nem beszélhetünk egy Unicode karakter méretéről, mert ez a választott kódolástól függ, és ez így tetszés szerint változhat. A gyakorlatban az UTF-8- ot széles körben használják a nyugati országokban.

Ahol az ASCII 7 bitet és az ISO / IEC 8859-1 8 bitet használ  (mint a legtöbb nemzeti kódlap), az Unicode, amely az egyes kódoldalakról gyűjti össze a karaktereket, 8 bitesnél több bájt használatához szükséges . A korlátot eredetileg 16 bitként határozták meg az Unicode korai verzióinál, és 32 bitet az ISO / IEC 10646 korai verzióinál .

Az aktuális határérték most 20 és 21  bit között van kódolási pontonként, amelyet szabványosított karakterekhez rendelnek a most kölcsönösen kompatibilis két szabvány:

  • Az ISO nemzetközi munkacsoport egységesíti a kódpontok hozzárendelését a karakterekhez, azok hivatalos nevéhez, és fenntartja az egyes szkriptek vagy szkriptcsoportok által használt kódpontokat. Ezenkívül dokumentálja az egyes karakterek lehetséges grafikus ábrázolását (tájékoztató jellegű) (ez a grafikus ábrázolás lehetőség szerint egyértelmű, köszönhetően a szabványosított karaktereknek a megfelelő kódblokkokban való elhelyezésének korlátozott számú szkript esetén).
  • Az Unicode konzorcium munkacsoportja pontosabban (az Unicode szabványban) egységesíti az automatizált feldolgozás szemantikáját a karaktertulajdonság-tábláknak köszönhetően, valamint az ezen tulajdonságokat felhasználó szabványos algoritmusok fejlesztését.
  • A két szabványtestület együttműködik, hogy szabványosított repertoárját folyamatosan szinkronizálja kölcsönösen hivatkozott hivatalos verziókba, és együtt dolgoznak a módosításokon (a változatok nem válnak hivatalossá, amíg mindkét testület jóváhagyja és teljesen meghatározza az új kiegészítéseket. Karakterek).
  • A gyakorlatban a legtöbb alkalmazásfejlesztő számára az ISO / IEC 10646 szabvány a teljesebb Unicode szabvány részhalmazaként jelenik meg , de ugyanazok a kódpontok vannak pontosan ugyanarra a karakterkészletre, mint a szabvány. Unicode (ezért az Unicode szabvány ismertebb, mert alkalmasabb számítógépes feldolgozásra, valamint ingyenesen elérhető az interneten).

Univerzális transzformációs formátum (UTF)

A Unicode és az ISO / IEC 10646 elfogadja az univerzális transzformáció számos formáját, hogy érvényes kódpontot képviseljen. Idézzünk:

Az UTF utáni szám a kódpontok minimális bitszámát jelenti , amelyekkel egy érvényes kódpont van ábrázolva.

Ezeket az átalakításokat eredetileg az ISO / IEC 10646 szabvány belső reprezentációs és kódpont kódolási rendszereihez hozták létre , amelyek eredetileg 31 bites kódpontokat határozhattak meg. Azóta módosították az ISO / IEC 10646 szabványt , így a három űrlap teljesen kompatibilis egymással, és lehetővé teszi az összes kódpont kódolását (mert az UTF-16 csak az első 17 sík kódpontjait teszi lehetővé képviselt).

Az Unicode emellett nagyon szigorúan szabványosította az összes érvényes kódpont (U + 0000 - U + D7FF és U + E000 - U + 10FFFF) átalakításának ezt a három formáját, és csak azokat, függetlenül attól, hogy a szöveget a kódpontok alakjainak szekvenciájában ábrázolják, vagy érvényes karakterekhez rendelt, fenntartott vagy nem karakterekhez rendelt kódpontok. A félzónákhoz rendelt kódpontok (U + D800 - U + DFFF), amelyeket csak az UTF-16 használ, egyenként érvénytelenek, mivel 2 16 bites kódpont párral jelölik a kódpontokat a 16 további tervre.

UTF-8

Az RFC  3629 - ben meghatározott UTF-8 a leggyakoribb alkalmazás a Unix és az Internet számára . Változó méretű kódolása lehetővé teszi, hogy átlagosan olcsóbb legyen a memória használatában (latin ábécés nyelvek esetén). De ez jelentősen lelassítja az egyes karakterláncok kibontásával járó műveleteket egyes nyelvekben, amelyek egész számokkal indexelik a karakterláncokat (példa = " a karakterlánc 815- ik karaktere"), mert az ismerethez a karaktereket a karakterlánc elejétől kell számítani. ahol az első kitermelt karakter van.

UTF-8 is rendelkezik, és ez a legfőbb előnye, kompatibilitás az egyszerű karakterlánc manipuláció ASCII a programozási nyelvek . Így a C-ben írt programok gyakran módosítás nélkül is futhatnak.

Kezdetben az UTF-8 bármilyen kódpontot kódolhatott az U + 0000 és az U + 7FFFFFFF között (tehát legfeljebb 31 bit). Ez a szóhasználat elavult, és az ISO / IEC 10646 szabvány módosították, hogy azok csak az érvényes kódot pont az első 17 lövés, kivéve azokat a félig zóna megfelelő kód elemeit használják UTF-16 a képviselet két kód elemek: a további 16 terv kódpontjai. Az UTF-8 leghosszabb szekvenciái szintén legfeljebb 4 bájtot igényelnek a korábbi 6 helyett. Ezenkívül az UTF-8-ot először az Unicode, majd az ISO / IEC 10646 módosította, hogy csak az egyes kódpontok legrövidebb ábrázolását fogadja el (a kódolás egyediségét ). Biztonsági problémákat vetett fel az a tény, hogy ugyanazon karaktert többféleképpen lehet képviselni, mivel a hacker egy másik írás által megkerülheti a "szűrt" formát.

Előnye az UTF-16-mal (és az UTF-32-vel) szemben az, hogy a szót alkotó bájtok sorrendjének különbségei ( endianitás ) nem jelentenek problémát egy heterogén rendszerek hálózatában; így ezt az átalakítást manapság a legtöbb szabványosított csereprotokoll használja.

Másrészt az UTF-8 teljes mértékben kompatibilis a szövegek ASCII karakterkészleten alapuló protokollok általi továbbításához, vagy kompatibilissé tehető (nem ASCII karakterek több bájtos átalakításának árán) a támogató csereprotokollokkal. 8 bites kódolású karakterkészletek (akár az ISO / IEC 8859, akár sok más 8 bites kódolt karakterkészlet alapján, amelyet a nemzeti szabványok vagy egyes saját fejlesztésű rendszerek határoznak meg).

Legfőbb hátránya, hogy a kódolási nagyon változó hosszúságú (1 bájt az kódpontokat rendelt ASCII - ISO / IEC 646 karakter , 2 a 4  byte , a többi kód pont), még akkor is, ha az automatikus szinkronizálás jellemző az UTF-8 a kódolás lehetővé teszi a szekvencia kezdetének véletlenszerű helyzetből történő meghatározását (az előző kódpontok legfeljebb 3 további olvasatának végrehajtásával). Ezt a kódolást azonban nem a karakterláncok feldolgozásának megkönnyítésére tervezték: gyakran előnyben részesítjük az UTF-16-ot, néha az UTF-32-et (kapzsi a memóriában).

Származékok
  • Egyes programok (például az Oracle adatbázis ), amelyek Unicode-adataikat UTF-16 formátumban képviselik, rendelkeznek (vagy tapasztaltak) átalakítási hibát UTF-8-ra: egy U + 10000 és U + 10FFFF közötti karakter, két 16- bites szavak, két Unicode karakter sorozataként UTF-8-vá konvertálódik. Ez a CESU-8 "véletlenszerű" létrehozásához vezetett, és előnye, hogy megkönnyíti az Unicode használatát 16 bites platformokon.
  • Az U + 0000 Unicode null karaktert az UTF-8 egyetlen nullx bájton kódolja 0x00 . Az Unicode szabvány szerint ennek a karakternek nincs különösebb jelentése; ugyanakkor (történelmi elvi okokból) a C nyelvű karakterlánc-feldolgozó könyvtárak ezt a vezérlő karaktert a karakterlánc végének tekintik, ami bonyolítja egyes alkalmazási esetek végrehajtását . A Java platform alatt az „  (en) Modified UTF-8  ” verzió úgy született meg, hogy kihasználta a CESU-8 „16 bites” hordozhatóságának előnyeit és hozzáadta az U + 0000 kódolásának lehetőségét a 0xC0 0x80 sorrendben. (az UTF-8-ban általában tiltott): ily módon cserélve a támogatott platform natív C könyvtárakkal, a platform könnyen kezelheti az összes érvényes Unicode-szöveget, valamint az összeállított osztályfájlokat (hordozható alternatív formátum, függetlenül az endiától és a szótól. méret).
UTF-16

Az UTF-16 jó kompromisszum, ha a memóriaterület nem túl kicsi, mert a modern nyelvek írásaihoz rendelt Unicode-karakterek túlnyomó többsége (beleértve a leggyakrabban használt karaktereket is) a többnyelvű tervalapban található, ezért képviselhető 16 biten. Az ISO / IEC 10646 francia változata ezeket a 16 bites szavakat "lefoglalásoknak" nevezi, de a nemzetközi változat mindazonáltal két bájtból álló klasszikus 16 bites szavakként írja le őket, és az endizmus szokásos szabályainak betartásával .

UTF-16 kódolás
szia \ lo DC00 DC01    ...    DFFF
D800 10 000 10001 ... 103FF
D801 10400 10401 ... 107FF
  ⋮
DBFF 10FC00 10FC01 ... 10FFFF

A tizenhat további sík kódpontjai két 16 bites szó átalakítását igénylik:

  • vonjon le 0x10000 értéket a kódpontról, 20 bites számot hagyva a 0x00 és 0xFFFFF tartományban;
  • a 10 legjelentősebb bitet (0x00 és 0x3FF közötti számot) hozzáadjuk a 0xD800-hoz, és megadjuk az első kódegységet a magas félzónában ( 0xD800-tól 0xDBFF-ig );
  • a 10 legkevésbé szignifikáns bitet (0x00 és 0x3FF közötti számot) hozzáadjuk a 0xDC00-hoz, és a második kódegységet adjuk az alacsony félzónában ( 0xDC00-tól 0xDFFF-ig );

Mivel a legtöbb általánosan használt karakter az alapsíkon helyezkedik el, a további klipek kódolását gyakran rosszul tesztelik a szoftverek, ami hibákhoz vagy biztonsági problémákhoz vezet még a széles körben elterjedt szoftverekben is. Bizonyos jogi keretek, például a GB 18030 , további tervek támogatását kérhetik, amelyek nevezetesen a tulajdonnevekben szereplő karaktereket tartalmazzák.

A kódoló szekvencia kezdetét az UTF-16-ban ábrázolt szöveg bármely pontjáról meg lehet határozni legfeljebb egy további olvasat végrehajtásával, csak akkor, ha ez a kódpont az alsó félterületen van. Ez az űrlap gazdaságosabb és könnyebben feldolgozható, mint az UTF-8, kevés ASCII karaktert tartalmazó szövegek ábrázolásához (U + 0000 - U + 007F).

Ennek az átalakításnak azonban két inkompatibilis kódolási sémája van, amelyek a bájtok sorrendjétől függenek a 16 bites egész ábrázolásban. Ennek a kétértelműségnek a feloldása és a heterogén rendszerek közötti átvitel lehetővé tétele érdekében hozzá kell adni a használt kódolási sémát (UTF-16BE vagy UTF-16LE) jelző információt, vagy a kódolt szöveget előtaggal kell ellátni a kódpont ábrázolásával. Érvényes U + FEFF (a "nulla szélességű, nem törő tér" karakterhez van rendelve, egy olyan karakterhez, amelyet most csak erre a célra használnak bájtsorrend-jelölőként), mivel az érvényes "megfordított" U + FFFE kódpont nem karakteres, a szövegekben tilos megfelel az Unicode és az ISO / IEC 10646 szabványoknak .

Az UTF-16 másik hibája, hogy a vele átalakított és a két kódolási séma bármelyikével továbbított szöveg nagyszámú bájtot tartalmaz, amelyek semlegesek vagy olyan értékkel bírnak, amelyek ütköznek a d értékekkel. Bizonyos csereprotokollok fenntartják a bájtokat.

Ez a kódolás, amelyet a Java platform belsőleg használ , valamint a Windows az Unicode-kompatibilis API-khoz (a típussal wchar).

UTF-32

Az UTF-32 akkor használható, ha a memóriaterület nem jelent problémát, és közvetlenül és méretváltozás nélkül kell hozzáférnünk a karakterekhez ( egyiptomi hieroglifák ).

Ennek a szabványos átalakításnak az az előnye, hogy az összes kódelem azonos méretű. Ezért nem szükséges további kódpontokat olvasni a kódpont ábrázolásának kezdetének meghatározásához.

Ez a formátum azonban különösen gazdaságtalan (beleértve a memóriát is), mivel feleslegesen "pazarolja" karakterenként legalább egy bájtot (mindig nulla). A szöveg memóriájának mérete negatívan befolyásolja a teljesítményt, mivel teljes RAM esetén több olvasást és írást igényel a lemezre , és csökkenti a processzorok memória gyorsítótárának teljesítményét is.

A jelenlegi modern nyelveken írt szövegeknél (a kiegészítő ideográfiai sík bizonyos ritka karaktereitől eltekintve), ezért csak az alapvető többnyelvű sík kódpontjait használva ez az átalakítás megduplázza a szükséges memória mennyiségét az UTF-16-hoz képest.

Az UTF-16-hoz hasonlóan az UTF-32-nek is több kódolási sémája van, a bájtok sorrendjétől függően, amelyek 8 bitnél nagyobb egész számot alkotnak (az UTF-32 két kódolási sémája szabványosított, az UTF-32BE és az UTF-32LE). Ezért szükséges megadni ezt a kódolási sémát, vagy meg kell határozni úgy, hogy a szöveget az U + FEFF kódpont UTF-32-ben való ábrázolásával előretold. Az UTF-16-hoz hasonlóan az üres bájtok jelenléte az UTF-32 szabványosított kódolási sémáiban inkompatibilisvé teszi a heterogén rendszerek közötti csere sok protokolljával.

Szintén ezt a formátumot használják gyakran csak nagyon helyileg bizonyos feldolgozáshoz, mint könnyebben kezelhető köztes formát, és gyakran előnyben részesítjük az UTF-16 transzformációt, amely gyakran hatékonyabb nagy mennyiségű szöveg feldolgozásához és tárolásához, az a kettő végrehajtása nagyon egyszerű, és a feldolgozás bonyolultsága szempontjából nagyon olcsó.

Valójában sok szövegszerkesztő könyvtár csak UTF-16-tal íródott, és hatékonyabb, mint az UTF-32, még akkor is, ha a szövegek további síkok karaktereit tartalmazzák (mert ez az ábraeset az esetek döntő többségében ritka marad).

Ne feledje azonban, hogy az UTF-32-re történő átalakítás 32 bites kódpontokat használ, amelyek közül sok nem feltétlenül képvisel érvényes kódpontot (az U + 0000 - U + D7FF és U + érvényes kódpontokat képviselő két intervallumon kívüli értékek) E000-től U + 10FFFF-ig), ezért nincs érvényes vagy fenntartott karakter (ezért az abban foglalt információk nem lehetnek szövegek Unicode-értelemben). Az érvénytelen kódértékeket használó szövegek továbbítása az UTF-32 szabványos kódolási sémáinak egyikében tilos minden Unicode-kompatibilis rendszer számára (a kódpontokat magáncélra kell használni), mivel lehetetlen lesz hogy képviselje őket egy másik UTF transzformációban, amellyel a három standardizált UTF kompakt módon kompatibilis.

Kínai szabvány GB 18030

Ez az Unicode átalakulása, amelyet nem az Unicode Konzorcium határoz meg, hanem a kínai szabványigazgatás, ahol támogatása kötelező az alkalmazásokban. Történelmileg ez egy kódolt karakterkészlet volt, amelyet kibővítettek az egész FKR repertoár támogatására egy algoritmikus transzformációval, amely kitöltött egy nagy kód-kód megfeleltetési táblázatot.

Unicode betűtípusok

Annak az állítása, hogy az Unicode kódolja a karaktereket, azt jelenti, hogy azt állítja, hogy az absztrakt szimbólumokhoz számot rendel, a logikai kódolás elvének megfelelően. Az Unicode viszont nem kódolja a karakterek, karakterjelek grafikus ábrázolását . Ezért nincs bijekciót közötti képviselete a jellegét és számát, mivel minden grafikai változatai stílus egységes.

Ezenkívül, ellentétben a klasszikus ASCII vagy Latin-1 betűtípussal , a karakterjel kóddal történő kiválasztása nem egyedi, és gyakran kontextuális, és ugyanazt a karakterjelet is megjelenítheti különböző kódok esetén. Így az "é" francia karakter kétféleképpen írható le: vagy az "é" -nek megfelelő szám közvetlen felhasználásával, vagy az "e" számának követésével az akut akcentussal vadászat nélkül. Bármelyik lehetőséget is választja, ugyanaz a karakterjel jelenik meg. Az első karakterről azt mondjuk, hogy előkomponálva van, a másodikról azt, hogy kompozícióról van szó (két karakter egyetlen karakterjelet alkot mindkettőből). Ez megengedett, sőt erősen ajánlott, mert a kódolás különböző formáit az Unicode „kanonikusan egyenértékűnek” minősíti, ami azt jelenti, hogy a kódolás két egyenértékű formáját azonos módon kell kezelni.

Sok összetett karakter van ebben az esetben, és ezen a két módon lehet kódolni (vagy több, egyes összetett karaktereket többféleképpen is szét lehet bontani, különösen, ha több diakritikusuk van). Leggyakrabban az előre megkomponált karakter előnyösebb a szöveg kódolásához, ha létezik (ez a helyzet például a politonikus görög esetében, amely bontásban kódolva grafikusan nem lehet kielégítő: a betűtípusoktól függően a különböző karakterek a karakterjel alkotói néha rosszul vannak elrendezve és nehezen olvashatók). Ugyanakkor nem minden összetett karakter rendelkezik egyedi kódponttal az előkomponált formájához.

Hasonlóképpen, egyes írási rendszerek, például a Devânagarî , a perzsa vagy az arab , a ligatúrák komplex kezelését igénylik  : a grafémák alakjukat megváltoztatják helyzetüktől vagy szomszédaiktól függően (lásd: Kontextusváltozat és Közös levél ). A helyes karakterjel kiválasztása feldolgozást igényel annak meghatározásához, hogy melyik kontextuális alakzatot válassza ki a betűtípusban, annak ellenére, hogy az összes kontextuális alakzatot azonos módon kódolja az Unicode.

Ezen okok miatt az Unicode betűtípust körültekintően kell kezelni. Például az összes létező karakterjelű betűtípus nem elegendő. Szükség van továbbá arra, hogy a megjelenítő rendszer (a renderelő motor ) rendelkezzen olyan mechanizmusokkal, amelyek képesek feldolgozni a ligatúrákat , a kontextusváltozatokat és az egyes nyelvekre jellemző ízületi formákat. Ezzel szemben egy olyan betűtípus, amely csak a karakterek egy részét képviseli, de tudja, hogyan kell helyesen megjeleníteni őket, jobban megérdemli az "Unicode betűtípus" címet. Végül a betűtípusok bizonyos technikai korlátai megakadályozhatják, hogy a teljes könyvtárat támogassák. A gyakorlatban lehetetlen (2009-ben) egyetlen betűtípust találni, amely az egész könyvtárat támogatja.

Az Unicode karakterkészlet tehát csak olyan betűtípus, amely lehetővé teszi az Unicode által engedélyezett összes formában kódolt szöveg közvetlen megjelenítését, és lehetővé teszi egy vagy több nyelvhez igazított koherens részhalmaz támogatását egy vagy több szkript támogatásához. Egyetlen Unicode betűtípus sem képes önmagában "működni", és a teljes írási támogatás ezek támogatását igényli egy renderelő motorban , amely képes azonos kódolási formák detektálására, szöveges kontextusformák keresésére és az Unicode-tal kódolt betűkészlet különböző karakterjeleinek kiválasztására ha szükséges, magában a betűtípusban található levelezési táblázatokat használja.

Műszaki információk

Szoftverkönyvtárak

Az ICU cross-platform szoftverkönyvtár lehetővé teszi az Unicode kódolású adatok manipulálását. A platform-specifikus Unicode támogatást a modern rendszerek is integrálják ( Java , Microsoft Windows , GNU / Linux , szabványos C / C ++ könyvtárak , Python stb.).

Az Unicode változók tárolásához használatos típusok:

Az Unicode-tal kompatibilis típusok a programozási nyelvekben
Programozási nyelv Írja be egyetlen karakterhez Írjon be bármilyen szöveget
VS char[4] Ahol wchar_t[2] char[] Ahol wchar_t[]
C ++ char[4] Ahol wchar_t[2] char[]vagy wchar_t[]vagy std::stringvagystd::wstring
Jáva char[2] Ahol int char[] Ahol String
ICU könyvtár (C / C ++ vagy Java esetén) UChar UChar[]vagy String,UnicodeString
JavaScript vagy ECMAScript char string
C # vagy J # char string
Delphi char[4] Ahol widechar[2] string Ahol widestring
Python 2 unicode
Python 3 str
Megy rune(= int32) string Ahol []byte
Gyors Character String
Megjegyzések
  1. UTF-8-ban
  2. Vegye figyelembe, hogy a wchar_tC nyelvtípus nem mindig teszi lehetővé az összes Unicode karakter kódolását, mert ennek a nyelvnek a szabványa nem biztosít elegendő minimális számot ehhez a szabványos típushoz. A nyelv sok fordítója azonban wchar_t32 bites (vagy akár 64 bites szabványos 64 bites egész számokat kezelő környezeteknél) meghatározást jelent, ami elegendő a szabványosított Unicode kód bármely pontjának tárolásához. De más fordítók képviseli wchar_t16 bit (különösen a Windows 16 vagy 32 bit környezet), még a 8 bites egyetlen (különösen a beágyazott rendszereket nem rendelkező általános operációs rendszer), mert wchar_thasználhatja ugyanazt állítja, a típus char, amely minimum 8 bit.
  3. A C és C ++ -hoz hasonlóan a Java nyelvnek van egy egységtípusa, amely 16 bit kódolását teszi lehetővé, de nem engedélyez egyetlen értékű kódpont kódolását (a natív típus charcsak pozitív 16 bites egész szám) . A szabványosított karakterek előtérből történő manipulálásához egy pár kódpontot kell használnia, amelyek mindegyike az UTF-16 űrlap által definiált két kódpontnak megfelelő értéket tartalmaz. Szintén az objektumtípusok Stringvagy char[2]a legalkalmasabbak Unicode karakter ábrázolására. A Java 1.4.1 óta a standard könyvtár teljes Unicode támogatást nyújt a natív típusnak int(ami egy 32 biten definiált egész szám) és a standard osztály statikus módszereinek köszönhetően Character(azonban egy ilyen típusú példányos objektum Characternem teszi lehetővé, csakúgy, mint a natív típus charbármely kódpont tárolásához).
  4. JavaScript számos nem szabványosított megvalósítással rendelkezik, néhány régebbi, amelyek karakterenként legfeljebb 16, és néha csak 8 bitet támogatnak. Ennek a nyelvnek az ECMAScript szabványa azonban Character32 biten (valójában az osztály alapján Number) meghatároz egy segédosztályt, amelynek támogatnia kell a 17 szabványosított terv összes kódpontját, míg a karakterláncok kötelezően kódolt karaktereket használnak 16 biten (de anélkül korlátozás, amely megerősíti az UTF-16 kódegységek párosítását, az ECMAScript típusú karakterláncok Stringnem korlátozódnak az egyetlen UTF-16 kódolásra, hanem korlátozás nélkül 16 biten kódolt egész konstansok vektorai, a (Java-val és más másokkal való interoperabilitás) biztosítása érdekében. nyelvek, amelyek szintén nem érvényesítik az UTF-16 megfelelőségi korlátozásokat natív adattípusaikban). Ez a két nyelv nem támogatja a változók kifejezett tipizálását, a típust dinamikusan határozzák meg a hozzájuk rendelt értékek (emellett több belső reprezentáció is lehetséges, eltéréseik általában átláthatóak a programozó számára).

Az Unicode azonban továbbra is gyenge a szoftveres reguláris kifejezések gyenge támogatásában , bár az olyan könyvtárak, mint az ICU és a Java , támogatják őket. Ilyen támogatást még nem szabványosítottak az ECMAScript számára, és csak a nyelvvel vagy interfészekkel létrehozott könyvtárak segítségével nyújtják az együttműködést más rendszerekkel (különösen a CORBA-val , COM- mal ) vagy nyelvekkel (különösen a C ++ és a Java ).

Felosztás

A naprakész particionálás megtalálható az Unicode hivatalos webhelyén. Tekintettel azonban az Unicode mai fontos szerepére ( ISO / IEC 10646 ), a fő karakterblokkok itt kerülnek ismertetésre. A francia nevek az ISO / IEC 10646 , a kétnyelvű nemzetközi szabvány hivatalos nevei, amelyek ugyanazokat a karaktereket használják, mint az Unicode. Ugyanolyan hivatalosak, mint az angol nevek.

A régi Unicode 1.0 szabvány elavult, és nem kompatibilis az ISO / IEC 10646 és az Unicode 1.1 verzióval, valamint minden későbbi verziójával; a fő inkompatibilitás a koreai nyelv írásához használt Hangul karakterblokkoké, amelyek megváltoztatták a helyzetüket, és amelyek régi kódpontjait azóta más blokkokhoz rendelték. Az alábbi táblázat kompatibilis az ISO / IEC 10646 (minden verzió) és az Unicode 1.1 (vagy újabb) verzióval .

Megjegyzés: A blokknevek esete nem normatív. Az "alap latin" tehát egyenértékű az "ALAP LATIN" szóval.

A következő táblázatokban a hivatalos Unicode PDF fájlra vonatkozó megjegyzéssel ellátott blokknév azt jelenti, hogy az adott blokkhoz társított Wikipedia oldal nem létezik vagy helytelen.

Alapvető többnyelvű terv (PMB, 0000 - FFFF)
Kód pontok Hivatalos blokk neve Hivatalos PDF Tudj meg többet
Rajt Vége
0000 007F Basic C0 és Latin parancsok U0000 lásd: ISO / IEC 646 , ASCII , latin ábécé , Unicode vezérlő karakterek
0080 00FF C1 parancsok és Latin-1 kiegészítés U0080 lásd: ISO / IEC 8859 , ISO / IEC 8859-1 , latin ábécé , Unicode ellenőrző karakterek
0100 017F Latin kiterjesztett A U0100 lásd a latin ábécét
0180 024F Latin kiterjesztett B U0180 lásd a latin ábécét
0250 02AF Nemzetközi fonetikus ábécé (API) U0250 lásd a nemzetközi fonetikus ábécét
02B0 02FF Szélességű módosító betűk U02B0 lásd Ékezetek , latin ábécé , Ékezetek a latin ábécé , Nemzetközi fonetikai ábécé
0300 036F Diakritikusok U0300 lásd Ékezetek , Ékezetek a latin ábécé , Ékezetek a görög ábécé , kopt ábécé , Ékezetek a cirill
0370 03FF Görög és kopt U0370 lásd görög ábécé és kopt ábécé
0400 04FF Cirill U0400 lásd cirill ábécé
0500 052F Cirill kiegészítő U0500 lásd cirill ábécé
0530 058F örmény U0530 lásd örmény ábécé
0590 05FF héber U0590 lásd héber ábécé , diakritikusok , a héber ábécé diakritikusai
0600 06FF arab U0600 lásd arab ábécé
0700 074F Szír U0700 lásd szír
0750 077F Arab kiegészítés U0750 lásd arab ábécé
0780 07BF Thâna U0780 lásd Maldív ábécé
07C0 07FF N'ko U07C0 lásd N'ko
0800 083F Szamaritánus U0800 lásd a szamaritánus ábécét
0840 085F Mandean U0840 lásd mandeai ábécé
0860 086F Szíriai kiegészítő U0860 lásd szír
0870 089F lefoglal - -
08A0 08FF Kiterjesztett arab A U08A0 lásd arab ábécé , diakritikusok , az arab ábécé diakritikusai
0900 097F Devanagari U0900 lásd Devanâgarî
0980 09FF bengáli U0980 lásd Bengalî
0A00 0A7F Gurmoukhi U0A00 lásd Gurmukhī
0A80 0AFF Gujarat U0A80 lásd gudzsaráti ábécé
0B00 0B7F Oriya U0B00 lásd Oriya
0B80 0BFF tamil U0B80 lásd tamil
0C00 0C7F Telougou U0C00 lásd Telougou
0C80 0CFF Kannara U0C80 lásd Kannara
0D00 0D7F Malayalam U0D00 lásd Malayalam
0D80 0DFF Singhalese U0D80 lásd Singhalese
0E00 0E7F Thai U0E00 lásd Thai
0E80 0EFF Lao U0E80 lásd Lao
0F00 0FFF Tibeti U0F00 lásd tibeti
1000 109F burmai U1000 lásd burmai
10A0 10FF grúz U10A0 lásd grúz , grúz ábécé
1100 11FF Jamos hangul U1100 lásd Hangûl
1200 137F etióp U1200 lásd Alphasyllabaire geez
1380 139F Etióp kiegészítő U1380 lásd Alphasyllabaire geez
13A0 13FF Cherokee U13B0 lásd Cherokee Szótár
1400 167F Egységes kanadai bennszülött szótárak U1400 lásd az indián nyelveket
1680 169F Ogam írás U1680 lásd Oghamic ábécé
16A0 16FF Rúnák U16A0 lásd a rovás ábécé
1700 171F Tagalog U1700 lásd Tagalog
1720 173F Hanounóo U1720 lásd Hanunóo ábécé  (en)
1740 175F Bouhide U1740 lásd Buhid  (en)
1760 177F Tagbanoua U1760 lásd: ABC Tagbanoua  (en)
1780 17FF Khmer U1780 lásd Khmer
1800 18AF mongol U1800 lásd mongol
18B0 18FF Kiterjesztett kanadai bennszülött szótárak U18B0 lásd az indián nyelveket
1900 194F Limbou U1900 lásd Limbou
1950 197F Tai U1950 lásd Taï-le
1980 19DF Új Taï lü U1980 lásd Tai lü
19E0 19FF Khmer szimbólumok U19E0 lásd Khmer
1A00 1A1F Bougui U1A00 lásd: Bugis nyelv , Lontara írása
1A20 1AAF Tai tham U1A20 lásd Taï Tham ábécé  ( fr )
1AB0 1AFF Kiterjesztett diakritikusok U1AB0 lásd Diacritic
1B00 1B7F Balinéz U1B00 lásd balinéz írás
1B80 1BBF Soundanese U1B80 lásd Soundanese , szudáni ábécé  (en)
1BC0 1BFF Batak U1BC0 lásd Batak forgatókönyvét
1C00 1C4F Lepcha U1C00 lásd Lepch ábécé  (en)
1C50 1C7F Ol chiki U1C50 lásd ábécé santâlî
1C80 1C8F Bővített cirill betű U1C80 lásd cirill ábécé , egyházi szláv
1C90 1CBF Kiterjesztett grúz U1C90 lásd grúz , grúz ábécé
1CC0 1CCF Sundanese kiegészítés U1CC0 lásd Soundanese , szudáni ábécé  (en)
1CD0 1CFF Védikus kiterjesztések U1CD0 lásd szanszkrit
1D00 1D7F Fonetikai kiegészítés U1D00 lásd a nemzetközi fonetikus ábécét
1D80 1DBF Kiterjesztett fonetikus kiegészítés U1D80 lásd a nemzetközi fonetikus ábécét
1DC0 1DFF A diakritikusok kiegészítik U1DC0 lásd Diacritic
1E00 1EFF Latin kiterjesztve további U1E00 lásd a latin ábécét
1F00 1FFF Kiterjesztett görög U1F00 lásd görög ábécé , politonikus görög
2000 206F Általános írásjelek U2000 lásd írásjelek , szóköz
2070 209F Hatványozók és indexek U2070 lásd: Exponent és Subscript
20A0 20CF Pénznem szimbólumok U20A0 lásd Pénznem szimbólum
20D0 20FF A szimbólumok kombinatorikus jelei U20D0 lásd nyíl , forgatás
2100 214F Betű típusú szimbólumok U2100 lásd: Hőmérséklet , Matematikai szimbólum , Védjegyjogi szimbólumok
2150 218F Számformák U2150 lásd a római számot , a Tört
2190 21FF Nyilak U2190 lásd Nyíl
2200 22FF Matematikai operátorok U2200 lásd Matematikai operátorok
2300 23FF Különböző műszaki jelek U2300 lásd görög ábécé , írásjelek , nyíl , matematikai szimbólumok , emoji
2400 243F Parancs piktogramok U2400 lásd: ISO / IEC 8859 , ISO / IEC 646 , Control C0  (en)
2440 245F Optikai karakter felismerés U2430 lásd: Optikai karakterfelismerés
2460 24FF Alfanumerikus körözött U2460 lásd latin ábécé , arab számok
2500 257F Hálók U2500 lásd Alakrajz karakter  (en)
2580 259F Útburkoló kövek U2580 lásd Alakrajz karakter  (be) , Téglalap
25A0 25FF Geometriai formák U25A0 lásd a geometriai alakot
2600 26FF Különböző szimbólumok U2600 lásd: Szimbólum , Emoji , Francia kártyajáték , Sakk , Nem szimbólum
2700 27BF Casseau U2700 lásd: szimbólum , arab számok , írásjelek , hangulatjelek , matematikai operátorok , nyíl
27C0 27EF Vegyes matematikai szimbólumok A U27C0 lásd Matematikai szimbólum
27F0 27FF Nyilak A kiegészítés U27F0 lásd Nyíl
2800 28FF Braille-kombinációk U2800 lásd a Braille-t
2900 297F Nyilak B kiegészítés U2900 lásd Nyíl
2980 29FF Különféle matematikai szimbólumok B U2980 lásd Matematikai szimbólum
2A00 2AFF További matematikai operátorok U2A00 lásd Matematikai operátorok
2B00 2BFF Különböző szimbólumok és nyilak U2B00 lásd: Nyíl , Emoji
2C00 2C5F Glagotikus U2C00 lásd Glagolit ábécé
2C60 2C7F Latin kiterjesztett C U2C00 lásd latin ábécé , ujgur
2C80 2CFF kopt U2C80 lásd kopt ábécé
2D00 2D2F Grúz kiegészítés U2D00 lásd grúz , grúz ábécé
2D30 2D7F Tifinagh U2D30 lásd Tifinagh és berber nyelvek
2D80 2DDF Etióp meghosszabbította U2D80 lásd Alphasyllabaire geez
2DE0 2DFF Bővített cirill betű U2DE0 lásd cirill ábécé , diakritikusok , a kirilic ábécé diakritikusai
2E00 2E7F Írásjel kiegészítés U2E00 lásd írásjelek
2E80 2EFF A CJC kulcsok további formái U2E80 lásd kínai, japán és koreai , Sinogramme , kínai írás , kínai nyelvek , szentírások japán , japán , hanja , koreai
2F00 2FDF Kínai Kangxi Keys U2F00 lásd Kangxi Karakterszótár
2FE0 2FEF lefoglal - -
2FF0 2FFF Ideográfiai leírás U2FF0 lásd Ideográfiai leírás
3000 303F CJC szimbólumok és írásjelek U3000 lásd írásjelek , kínai, japán és koreai , Sinogramme , kínai írás , kínai nyelvek , szentírások japán , japán , Hanja , koreai
3040 309F Hiragana U3040 lásd Hiragana , japán , japán írások
30A0 30FF Katakana U30A0 lásd Katakana , japán , japán írások
3100 312F Bopomofo U3100 lásd Bopomofo , kínai, japán és koreai , Sinogramme
3130 318F Hangul kompatibilitás jamos U3130 lásd Hangûl , Sinogramme , koreai
3190 319F Kanbun U3190 lásd Kanbun , Sinogramme
31A0 31BF Bopomofo meghosszabbította U31A0 lásd Bopomofo , Sinogramme
31C0 31EF CJC vonások U31C0 lásd kínai, japán és koreai , Sinogramme , kínai írás , kínai nyelvek , szentírások japán , japán , hanja , koreai
31F0 31FF Katakana fonetikus kiterjesztés U31F0 lásd Katakana , japán , japán írások
3200 32FF Körözött CJC levelek és hónapok U3200 lásd: arab , kínai, japán és koreai , szinogramma , kínai írás , kínai nyelvek , szentírások, japán , japán , hanja , koreai ábrák
3300 33FF CJC kompatibilitás U3000 lásd mértékegység , kínai, japán és koreai , Sinogramme , kínai írás , kínai nyelvek , szentírások japán , japán , Hanja , koreai
3400 4DBF A CJC egységesített ideogrammának A. kiegészítése
( 1. rész ) ( 2. rész )
U3400 lásd kínai, japán és koreai , Sinogramme , kínai írás , kínai nyelvek , szentírások japán , japán , hanja , koreai
4DC0 4DFF Hexagrammák a mutációk klasszikusából vagy Yi Jing U4DC0 lásd Yi Jing , Hexagram , kínai, japán és koreai , Sinogram
4E00 9FFF CJC egyesített ideogramok
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész ) ( 6. rész )
U4E00 lásd kínai, japán és koreai , Sinogramme , kínai írás , kínai nyelvek , szentírások japán , japán , hanja , koreai , vietnami
A000 A48F A Friss-hegység szótagja UA000 lásd Szótár yi
A490 A4CF Yi billentyűk UA490 lásd Szótár yi
A4D0 A4FF Lisu UA4D0 lásd Lisu , Fraser ábécé  (en)
A500 A63F Vai UA500 lásd a Tantárgyi vaï
A640 A69F Bővített cirill betű UA640 lásd cirill ábécé
A6A0 A6FF Bamoun UA6A0 lásd a Bamoun-írást
A700 A71F Hangváltás betűk UA700 lásd: Nyelv hangokban , Kínai nyelvek
A720 A7FF Latin kiterjesztett D UA720 lásd a latin ábécét
A800 A82F Sylotî nâgrî UA800 lásd Sylotî nâgrî  (en)
A830 A83F Indiai közös digitális alakzatok UA830 lásd India
A840 A87F Phags-pa UA840 lásd a phagpa szkriptet
A880 A8DF Saurachtra UA880 lásd Saurashtra ábécé  (en)
A8E0 A8FF Kiterjesztett devanāgarī UA8E0 lásd Devanâgarî
A900 A92F Kayah li UA900 lásd Kayah Li ábécé
A930 A95F Rejang UA930 lásd Rejang írása
A960 A97F Jamos Hangul Extended A UA960 lásd Hangûl , Sinogramme , koreai
A980 A9DF jávai UA980 lásd a jávai írást
A9E0 A9FF Burmai meghosszabbította B-t UA9E0 lásd burmai , burmai írás
AA00 AA5F Cham UAA00 lásd Cham
AA60 AA7F Burmai meghosszabbította A UAA60 lásd burmai , burmai írás
AA80 AADF Tai viet UAA80 lásd ábécé taï viêt , Tay dam , Tay don , Tay Song  ( fr )
AAE0 AAFF Meitei mayek meghosszabbítva UAAE0 lásd Meitei , Meitei szkript
AB00 AB2F Etióp kiterjesztett A UAB00 lásd Alphasyllabaire geez
AB30 AB6F Latin kiterjesztett E UAB30 lásd latin ábécé , Teuthonista , Alphabet d'Ascoli , ábécé Rousselot-Gilliéron
AB70 ABBF Cherokee kiegészítő UAB70 lásd Cherokee Szótár
ABC0 ABFF Meitei mayek UABC0 lásd Meitei , Meitei szkript
AC00 D7AF Hangul szótagok
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész )
UAC00 lásd Hangûl , Sinogramme , koreai
D7B0 D7FF Jamos Hangul Extended B U27B0 lásd Hangûl , Sinogramme , koreai
D800 DBFF Magas indirekciós félzóna UD800 lásd az iránytalanság felső félzónáját
DC00 DFFF Alacsony indirekciós félzóna UDC00 lásd az alacsony indirekciós félzónát
E000 F8FF Magánhasználati terület
( 1. rész ) ( 2. rész )
UE000 Nincs hivatalosan meghatározott tulajdonság
F900 FAFF CJC kompatibilitási ideogramok UF900 lásd kínai, japán és koreai , Sinogramme , kínai írás , kínai nyelvek , szentírások japán , japán , hanja , koreai
FB00 FB4F ABC sorrendben UFB00 lásd latin ábécé , héber ábécé , örmény ábécé
FB50 FDFF Arab prezentációs űrlapok
( 1. rész ) ( 2. rész ) ( 3. rész )
UFB50 lásd arab ábécé
FE00 FE0F Változatválasztók UFE00 lásd a választók variánsa  (in)
FE10 FE1F Függőleges alakzatok UFE10 lásd írásjelek , GB 18030
FE20 FE2F Kombinatorikus fél jelek UFE20 lásd Diacritic
FE30 FE4F CJC kompatibilitási űrlapok UFE30 lásd kínai, japán és koreai , Sinogramme , kínai írás , kínai nyelvek , szentírások japán , japán , hanja , koreai
FE50 FE6F Kis alakváltozások UFE50 lásd írásjelek , GBK , GB 2312 , CNS 11643  (en)
FE70 FEFF Arab prezentációs formák B UFE70 lásd arab ábécé
FF00 FFEF Fél és teljes szélességű alakzatok UFF00 formákat látni fél- és teljes szélességben , kínai, japán és koreai , Sinogramme , kínai írás , kínai nyelvek , szentírások japán , japán , hanja , koreai , ASCII , latin ábécé
FFF0 FFFF Speciális karakterek UFFF0 lásd: Speciális karakterek
Kiegészítő többnyelvű terv (PMC, 10 000–1FFFF)
Kód pontok Hivatalos blokk neve Hivatalos PDF Tudj meg többet
Rajt Vége
10 000 1007F Lineáris tananyag B U10000 lásd Lineáris B
10080 100FF Lineáris B ideogrammok U10080 lásd Lineáris B
10100 1013F Égei-tengeri számok U10100 lásd: számok iEgean  (en)
10140 1018F Ógörög számok U10140 lásd az ókori görög számokat
10190 101CF Ősi szimbólumok U10190 lásd egységek római , római pénznem
101D0 101FF Phaistos Disc U101D0 lásd Phaistos Disc
10200 1027F lefoglal - -
10280 1029F Lycian U10280 lásd Lycien
102A0 102DF Carien U102A0 lásd Carian ábécé
102E0 102FF Kopt epact számok U102E0 lásd kopt
10300 1032F Dőlt betű U10300 lásd Régi dőlt betű
10330 1034F gótikus U10330 lásd gótikus
10350 1037F Régi perm U10350 lásd a régi permi ábécét
10380 1039F Ugaritic U10380 lásd ugariti ábécé
103A0 103FF Öreg perzsa U103A0 lásd öreg perzsa
10400 1044F Deseret U10400 lásd ábécé deseret
10450 1047F Shavien U10450 lásd a sháv ábécét
10480 104AF Osmanya U10480 lásd Osmanya ábécé
104B0 104FF Osage U104B0 lásd Osage
10500 1052F Elbasan U10500 lásd Elbasan forgatókönyvét
10530 1056F Aghbanian U10530 lásd az agbani ábécét
10570 105FF lefoglal - -
10600 1077F Lineáris A U10600 lásd Lineáris A
10780 107FF lefoglal - -
10800 1083F Ciprusi tananyag U10800 lásd ciprusi szótár
10840 1085F Birodalmi arámi U10840 lásd arámi ábécé
10860 1087F Palmyren ábécé U10860 lásd Palmyren ábécé
10880 108AF Nabataean U10880 lásd a nabateuszi ábécét
108B0 108DF lefoglal - -
108E0 108FF Hatrenian U108E0 lásd Hatrénien ábécé  ( fr )
10900 1091F föníciai U10900 lásd föníciai ábécé
10920 1093F Lydian U10920 lásd Lídiai ábécé
10940 1097F lefoglal - -
10980 1099F Meroit hieroglifák U10980 lásd a meroitic szkriptet
109A0 109FF Meroitic Kurzív U109A0 lásd a meroitic szkriptet
10A00 10A5F Kharochthî U10A00 lásd ábécé kharoshthi
10A60 10A7F Dél-arab U10A60 lásd a dél-arab ábécét
10A80 10A9F Észak-arab U10A80 lásd észak-arab  (en)
10AA0 10ABF lefoglal - -
10AC0 10AFF Manichean U10AC0 lásd Manichean Alphabet  (en)
10B00 10B3F Avesztikus U10B00 lásd Avesti ábécé  (en)
10B40 10B5F Pártus feliratok U10B40 lásd a pártus feliratokat  (en)
10B60 10B7F Feliratok Pehlevi U10B60 lásd pehlevi forgatókönyvet
10B80 10BAF Pehlevi a Psalters-ből U10B80 lásd pehlevi szentírás , Psalter
10BB0 10BFF lefoglal - -
10C00 10C4F Orkhon U10C00 lásd Orkhon ábécé
10C50 10C7F lefoglal - -
10C80 10CFF Régi magyar U10C80 lásd Magyar Rúnák
10D00 10E5F lefoglal - -
10E60 10E7F Rumi digitális szimbólumok U10E60 lásd Fez , Fez ábráit
10E80 10FDF lefoglal - -
10FE0 10FFF Elymaic U10FE0 lásd Élymaïque  (en)
11000 1107F Brahmin U11000 lásd Brahmi
11080 110CF Khaithi U11080 lásd Khaithi
110D0 110FF Sora sompeng U110D0 lásd ábécé sora sompeng  (en)
11100 1114F Chakma U11100 lásd Ojhapath
11150 1117F Mahajanî U11150 lásd Mahâjanî  (in)
11180 111DF Charada U11180 lásd Alphilabary sharda
111E0 111FF Szingaléz archaikus számok U111E0 lásd Singhalese
11200 1124F Khojki U11200 lásd Khojki  (en)
11250 1127F lefoglal - -
11280 112AF Multani U11280 lásd Multani ábécé  (en)
112B0 112FF Khudabadi U112B0 lásd Khudabadi  (en) írása
11300 1137F Grantha U11300 lásd Grantha
11380 113FF lefoglal - -
11400 1147F Newa U11400 lásd Newa ábécé  (en)
11480 114DF Tirhuta U11480 lásd Tirhuta
114E0 1157F lefoglal - -
11580 115FF Siddham U11580 lásd Alphasyllabary siddham
11600 1165F Modi U11600 lásd Modi Alphasyllabary
11660 1167F Mongol kiegészítő U11660 lásd mongol
11680 116CF Takri U11680 lásd Takri ábécé  (en)
116D0 116FF lefoglal - -
11700 1173F Ahom U11700 lásd Alphasyllabaire âhom
11740 1189F lefoglal - -
118A0 118FF Warang citi U118A0 lásd Warang Citi  (en)
11900 11999 lefoglal - -
119A0 119FF nandinâgarî U119A0 lásd Nandinagari  (en)
11A00 11A4F Másodfokú Zanabazar U11A00 lásd Zanabazar , mongol
11A50 11AAF Soyombo U11A50 lásd a soyombo szkriptet
11AB0 11ABF lefoglal - -
11AC0 11AFF Paou chin haou U11AC0 lásd : Paou chin haou  (en) írása
11B00 11BFF lefoglal - -
11C00 11C6F Bhaiksuki U11C00 lásd Bhaiksuki ábécé  (en)
11C70 11CBF Marchen U11C70 lásd Zhang-zhung
11CC0 11CFF lefoglal - -
11D00 11D5F Masaram gondi U11D00 lásd Masaram Gondi  (en) , Gondi
11D60 11FBF lefoglal - -
11FC0 11FFF Tamil kiegészítő U11FC0 lásd tamil
12000 123FF Ékírásos U12000 lásd ékírás
12400 1247F Írásjelek és ékírásszámok U12400 lásd ékírás
12480 1254F Az archaikus dinasztiák ékírásai U12480 lásd ékírás
12550 12FFF lefoglal - -
13000 1342F Egyiptomi hieroglifák U13000 lásd az egyiptomi hieroglif forgatókönyvet
13430 1343F Egyiptomi hieroglif formázási vezérlők U13430 lásd az egyiptomi hieroglif forgatókönyvet
13440 143FF Fenntartva
(1. rész) (2. rész)
- -
14400 1467F Anatóliai hieroglifák U14400 lásd az anatóliai hieroglifákat
14680 167FF Fenntartva
(1. rész) (2. rész) (3. rész)
- -
16800 16A3F Bamoun kiegészítő U16800 lásd a Bamoun-írást
16A40 16A6F Mro U16A40 lásd: Nyelv Mro  (en)
16A70 16ACF lefoglal - -
16AD0 16AFF Bassa U16AD0 lásd ábécé bassa
16B00 16B8F Pahawh hmong U16B00 lásd Pahawh hmong
16B90 16EFF lefoglal - -
16F00 16F9F Miao U16F00 lásd : Miao  (en) írása
16FA0 16FDF lefoglal - -
16FE0 16FFF Ideográfiai szimbólumok és írásjelek U16FE0 lásd Ideogram , Tangut írás , Nüshu
17000 187FF Tangoute
(1. rész) (2. rész)
U17000 lásd Tangoute írás
18800 18AFF Tangut alkatrészek U18800 lásd Tangoute írás
18B00 1AFFF Fenntartva
(1. rész) (2. rész) (3. rész)
- -
1B000 1B0FF Kana kiegészítő U1B00 lásd japán , japán írások , Kana
1B100 1B12F Kiterjesztett Kana A U1B100 lásd japán , japán írások , Kana , Hentaigana
1B130 1B16F Hosszabbítás kis kana U1B130 lásd japán , japán írások , Kana , Hentaigana
1B170 1B2FF Nüshu U1B170 lásd Nüshu
1B300 1BBFF lefoglal - -
1BC00 1BC9F Ismétlődő gyorsírás U1BC00 lásd gyorsírás , Émile Duployé
1BCA0 1CFFF Fenntartva
(1. rész) (2. rész)
- -
1D000 1D0FF Bizánci zenei szimbólumok U1D000 lásd a bizánci zene
1D100 1D1FF Nyugati zenei szimbólumok U1D100 lásd nyugati zenét
1D200 1D24F Ógörög zenei jelölés U1D200 lásd az ókori görög zenét
1D250 1D2FF lefoglal - -
1D300 1D35F Legfelsőbb rejtély klasszikus szimbólumok U1D300 lásd Tai Xuan Jing  (en)
1D360 1D37F Kínai pálcika U1D360 lásd: Bár számlálása
1D380 1D3FF lefoglal - -
1D400 1D7FF Alfanumerikus matematikai szimbólumok U1D400 lásd matematikai szimbólum , latin ábécé , arab számok
1D800 1DAAF Sutton jeleinek írása U1D800 lásd Írásjelek
1DAB0 1DFFF lefoglal - -
1E000 1E02F Glagolit kiegészítő U1E000 lásd Glagolit ábécé
1E030 1E0FF lefoglal - -
1E100 1E14F Nyiakeng puachue hmong U1E800 lásd Nyiakeng puachue hmong  (en)
1E150 1E2DF lefoglal - -
1E2C0 1E2FF Wancho U1E2C0 lásd Wancho
1E300 1E7FF lefoglal - -
1E800 1E8DF Kolduló kikakui U1E800 lásd Kikakui
1E8E0 1E8FF lefoglal - -
1E900 1E95F Adlam U1E900 lásd ábécé adlam
1E960 1ECFF lefoglal - -
1ED00 1ED4F Syaq figurák U1ED00
1ED50 1ECFF lefoglal - -
1EE00 1EEFF Arab matematikai ábécé szimbólumok U1EE00 lásd arab matematika
1EF00 1EFFF lefoglal - -
1F000 1F02F Mahjong-darabok U1F000 lásd Mah-jong
1F030 1F09F Dominók U1F030 lásd Dominos
1F0A0 1F0FF Kártyázás U1F0A0 lásd Kártyajáték
1F100 1F1FF Karikás alfanumerikus kiegészítés U1F100 lásd az ARIA STD-B24  (en)
1F200 1F2FF Körözött ideográfiai kiegészítés U1F200 lásd az ARIA STD-B24  (en)
1F300 1F5FF Különböző szimbólumok és piktogramok U1F300 lásd: Piktogram , Emoji
1F600 1F64F Hangulatjelek U1F600 lásd Emoticon , Emoji
1F650 1F67F Díszkazetta U1F650 lásd Wingdings
1F680 1F6FF Szállítási és térképészeti szimbólumok U1F680 lásd: Közlekedés , Térképészet , Emoji
1F700 1F77F Alkímiai szimbólumok U1F700 lásd Alkímia
1F780 1F7FF Kiterjesztett geometriai alakzatok U1F780 lásd a geometriai alakot
1F800 1F8FF Nyilak C kiegészítés U1F800 lásd Nyíl
1F900 1F9FF További szimbólumok és piktogramok U1F900 lásd piktogram , Emoticon , Emoji
1FA00 1FA6F lefoglal - -
1FA70 1FAFF Kiterjesztett szimbólumok és piktogramok-A U1FA70 lásd: Piktogram , Emoji
1FB00 1FFFF lefoglal - -
Kiegészítő ideográfiai terv (PIC, 20000 - 2FFFF)
Kód pontok Hivatalos blokk neve Tudj meg többet
Rajt Vége
20 000 2A6DF CJC egységesített ideogrammok B kiegészítés
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész ) ( 6. rész )
( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész ) ( 11. rész )
lásd kínai, japán és koreai
2A6E0 2A6FF lefoglal -
2A700 2B73F C kiegészítés a CJC egységes ideogramjaihoz
( 1. rész ) ( 2. rész )
lásd kínai, japán és koreai
2B740 2B81F D kiegészítés az egységes CJC ideogrammokhoz lásd kínai, japán és koreai
2B820 2CEAF E kiegészítés az egységes CJC ideogrammokhoz lásd kínai, japán és koreai
2CEB0 2EBEF F kiegészítés az egységes CJC ideogrammokhoz lásd kínai, japán és koreai
2EBF0 2F7FF lefoglal -
2F800 2FA1F CJC kompatibilitási ideogrammák kiegészítése lásd kínai, japán és koreai
2FA20 2FFFF lefoglal -
Fenntartott kiegészítő tervek (30 000 a DFFFF-hez)
Kód pontok Hivatalos blokk neve Tudj meg többet
Rajt Vége
30 000 3FFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
3. terv
40 000 4FFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
4. terv
50 000 5FFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
5. terv
60 000 6FFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
6. terv
70 000 7FFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész ) ( 15. rész ) ( 16. rész ) ( 17. rész )
7. terv
80 000 8FFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
8. terv
90 000 9FFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
9. terv
A0000 AFFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
10. terv
B0000 BFFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
11. terv
C0000 CFFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
12. terv
D0000 DFFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
13. terv
Speciális kiegészítő terv (PCS, E0000 - EFFFF)
Kód pontok Hivatalos blokk neve Hozzászólások
Rajt Vége
E0000 E007F Címkék
E0080 E00FF lefoglal -
E0100 E01EF Változatválasztók kiegészítik
E01F0 EFFFF Fenntartva
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
-
További tervek magáncélú felhasználásra (F0000 - 10FFFF)
Kód pontok Hivatalos blokk neve Hivatalos PDF Hozzászólások
Rajt Vége
F0000 FFFFF További A zóna magáncélú használatra
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
UF0000 Nincs hivatalosan meghatározott tulajdonság
100 000 10FFFF B kiegészítő zóna magáncélú használatra
( 1. rész ) ( 2. rész ) ( 3. rész ) ( 4. rész ) ( 5. rész )
( 6. rész ) ( 7. rész ) ( 8. rész ) ( 9. rész ) ( 10. rész )
( 11. rész ) ( 12. rész ) ( 13. rész ) ( 14. rész )
( 15. rész ) ( 16. rész ) ( 17. rész )
U100000 Nincs hivatalosan meghatározott tulajdonság

A magáncélú területek nem mutatják ugyanazokat a szemeket egyik betűtípusról a másikra, ezért ezeket el kell kerülni a heterogén rendszerek közötti cserére szánt szövegek kódolásakor. Ezek a magáncélú kódpontok azonban érvényesek, és felhasználhatók az Unicode és az ISO / IEC 10646 szabványoknak megfelelő bármilyen automatizált feldolgozásban , ideértve a különböző rendszereket is, ha a használatukról privát kölcsönös megállapodás van érvényben .

A két fél közötti megállapodás hiányában az ezeket a karaktereket használó rendszerek elutasíthatják az őket tartalmazó szövegeket, mivel az általuk alávetett feldolgozás nem működhet helyesen, vagy biztonsági problémákat okozhat; más rendszereknek, amelyek nem tulajdonítanak különleges funkciót ezeknek a karaktereknek, másrészt el kell fogadniuk őket érvényesnek, és a szövegek szerves részeként kell tartaniuk, mintha grafikus szimbólumok lennének, még akkor is, ha nem tudják, hogyan kell megjeleníteni helyesen.

A nem karakterek érvényes kódpontok, de nem (és soha nem is lesznek) hozzárendelve szabványosított karakterekhez. Tilos felhasználni a rendszerek között továbbított szövegek kódolásában (még akkor is, ha azonosak), mert lehetetlen azokat kompatibilisvé tenni a szabványosított univerzális transzformációs formákkal (beleértve az UTF-8, UTF-16, UTF-32) megfelelő kódolással, és egyéb szabványosított kódolások kompatibilis Unicode és az ISO / IEC 10646 ( Bocu -1, SCSU , különböző változatai kínai szabvány GB 18030 ,  stb ). Egyes rendszerek azonban helyben generálják és használják őket, de szigorúan belső feldolgozásra, amelynek célja a szövegszerkesztési algoritmusok megvalósításának megkönnyítése a többi szabványosított karakter használatával.

Ez utóbbi nem karakterek között vannak érvényes kódpontok, amelyek félzónákra vannak fenntartva (privát vagy nem). Ezek a kódpontok nem használhatók külön-külön egy karakter kódolásához. Csak az UTF-16 univerzális transzformációs formához (és a megfelelő kódolási sémákhoz) használják, hogy két kódponton (egyenként 16 bites) érvényes kódpontokat jelenítsenek meg a 16 kiegészítő sík egyikében (a kódpontok bizonyos kombinációi megfelelnek a ezek a tervek, standard vagy magán, egyéb kombinációk nem képviselhetnek érvényes karaktert, mivel megfelelnek e kiegészítő tervek nem karaktereinek, ezért a szabványnak megfelelő szövegekben tilosak).

Egyéb szabad területeket (amelyek nincsenek szabványosított megnevezett blokkhoz rendelve, vagy a meglévő megnevezett blokkokban szabadon hagyott és fenntartott kódpontokat) a jövőben az Unicode és az ISO / IEC 10646 jövőbeni verzióiban fenntartjuk , de érvényesek. Bármely rendszernek, amely ezeket a fenntartott kódpontokat tartalmazó szövegekkel foglalkozik, el kell fogadnia őket anélkül, hogy azokat szűrnék. Az Unicode meghatározza a hipotetikus megfelelő karakterek alapértelmezett tulajdonságait, hogy megőrizze a rendszerek (az Unicode szabványnak megfelelő) kompatibilitást a jövőbeli megfelelő szövegekkel, amelyek ezeket tartalmazzák. Egyetlen megfelelő alkalmazás sem rendelhet hozzájuk különleges karaktert vagy szemantikát (a privát területeket erre a célra szánják).

Megjegyzések és hivatkozások

  1. (in) "  Az Unicode® Standard 12.0 verziójának bejelentése  " a The Unicode blogon ,2019. március 5
  2. (en) [1] .
  3. (in) "  Webhelyek karakterkódolásainak használati statisztikái, 2017. január  " a w3techs.com webhelyen (hozzáférés: 2017. január 6. ) .
  4. "Az  Unicode 7.0 250 hangulatjelet ad hozzá a középső ujjal együtt  " a következő oldalon: nextinpact.com ,2014. június 16(megtekintés : 2016. január 20. ) .
  5. (in) Unicode 8 : Mi és mikor  " az emojipedia.org oldalon ,2015. június 17(megtekintés : 2016. január 20. ) .
  6. (in) Unicode® 9.0.0  " a http://unicode.org/ oldalon (hozzáférés: 2018. április 23. ) .
  7. (in) Unicode® 10.0.0  " a http://unicode.org/ oldalon (hozzáférés: 2018. április 23. ) .
  8. (in) Unicode® 11.0.0  " a http://unicode.org/ oldalon (hozzáférés: 2018. április 23. ) .
  9. (in) Unicode® 12.0.0  " a http://unicode.org/ oldalon (hozzáférés : 2019. március 6. ) .
  10. Inc Unicode , "  Az Unicode® Standard bejelentése, 13.0 verzió  " (hozzáférés : 2020. május 26. )
  11. (in) Unicode technikai jelentés # 17: Unicode karakterkódolási modell .
  12. (in) "  UTF-8, az ISO 10646 átalakítási formátuma  " , Megjegyzések iránti kérelem, n o  3629,2003. november.
  13. (in) A Unicode Standard Version 5.0 , 16. fejezet  : Special Areas és Format karakterek [PDF] - Unicode, Inc., p.  354 .
  14. UTF-8 szekvenciáknak a lehető legrövidebbeknek kell lenniük. Ezt a korlátozást ellenőrizni kell bizonyos biztonsági rések, például a "/../" elkerülése érdekében - lásd a részleteket az UTF-8 cikk "Hátrányok" szakaszában .
  15. (in) "  kód az Apache Xalan 2.7.0 qui-ban meghiúsíthatunk helyettesítő párokat  " , 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

Lásd is

Kapcsolódó cikkek

Külső linkek

Normatív hivatkozások Tájékoztató hivatkozások
  • fr) Az ISO / IEC 10646 és az Unicode szabványok hivatalos francia fordítása .
  • fr) Unicode 5.0 a gyakorlatban , Patrick Andries, a Dunod kiadója (2008. április) - szakkönyv.
  • (en) RFC 1641  : Unicode használata a MIME-val - kísérleti (1994. július)
  • en) RFC 2152  : UTF-7, az Unicode Mail-Safe Transformation Format - kísérleti (1997 május); helyettesíti az RFC 1642 (elavult)
  • (en) RFC 2482  : Nyelvcímkézés egyszerű Unicode szövegben - informatív (1999. január)
  • en) RFC 3718  : A Unicode konzorciumi eljárások, irányelvek, stabilitás és nyilvános hozzáférés összefoglalása - tájékoztató (2004. február)
  • en) RFC 5891  : Nemzetközi domainnevek az alkalmazásokban (IDNA): Protokoll - javasolt szabvány; az RFC 3490 és az RFC 3491 (elavult) helyébe lép , frissíti az RFC 3492 Punycode szoftvert
  • (in) Unicode - A film Az Unicode 6.0 összes 109 242 karaktere egyetlen filmben
Táblázatok és adatok Felhasználói Útmutató Beszélgetések és cikkek
  • (en) Unicode, a világ írása? (  a Digital Document folyóirat 6. kötete (2003) , 364 oldal ). Érdeklődés: kritikus nézőpontok (tipográfusok, informatikusok, egyiptológusok  stb. ) És interjú Ken Whistlerrel , az Unicode Konzorcium műszaki igazgatójával .
  • (en) Otfried Cheong, UniHan (article sinogram egyesítés problémák a UniHan Unicode)