Unicode
Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2022. augusztus 16-án felülvizsgált
verziótól ; az ellenőrzések 8 szerkesztést igényelnek .
A Unicode [1] ( Eng. Unicode ) egy karakterkódolási szabvány, amely a világ szinte összes írott nyelvének jeleit tartalmazza [2] . A szabvány jelenleg a domináns az interneten .
A szabványt 1991-ben a Unicode Consortium (Unicode Inc. ) non-profit szervezet javasolta [ 3] [4] . A szabvány használata lehetővé teszi nagyon sok karakter kódolását különböző írásrendszerekből: az Unicode szabvány szerint kódolt dokumentumokban, kínai hieroglifákban , matematikai szimbólumokban, görög ábécé betűiben , latin és cirill ábécében , zenei szimbólumokban a jelölés, és a kódlap váltás szükségtelenné válik [5] .
A szabvány két fő részből áll: egy univerzális karakterkészletből ( eng. Universal character set, UCS ) és egy kódoláscsaládból ( eng. Unicode transzformációs formátum, UTF ). Az univerzális karakterkészlet felsorolja a Unicode szabvány által megengedett karaktereket, és minden karakterhez egy kódot rendel hozzá nemnegatív egész számként, amelyet általában hexadecimális jelöléssel írnak elő, előtaggal U+, például U+040F. A kódolási család határozza meg, hogy a karakterkódok hogyan konvertálódnak adatfolyamban vagy fájlban való továbbításhoz.
A Unicode szabvány kódjai több területre vannak osztva. Az U+0000-tól U+007F-ig terjedő kódokkal rendelkező terület az ASCII -készletből származó karaktereket tartalmaz , és ezek a karakterkódok megegyeznek az ASCII-kódjaikkal. Ezután következnek a többi írásrendszer szimbólumterületei, az írásjelek és a technikai szimbólumok. A kódok egy része későbbi használatra van fenntartva [6] . A cirill karakterek alatt az U + 0400 - U + 052F, U + 2DE0 - U + 2DFF, U + A640 - U + A69F kódokkal rendelkező karakterek területei vannak lefoglalva (lásd Unicode cirill ) [7] .
A Unicode létrehozásának és fejlesztésének háttere
Az Unicode minden karakter egyedi kódja, platformtól, programtól, nyelvtől függetlenül.Unicode konzorcium [8]
Az 1980-as évek végére a 8 bites kódolások váltak szabványossá, már nagy számban voltak, és folyamatosan jelentek meg újak. Ennek oka egyrészt a támogatott nyelvek körének bővülése, másrészt az egymással részben kompatibilis kódolások létrehozásának vágya (tipikus példa az orosz nyelv alternatív kódolásának megjelenése a nyugati programok kihasználása miatt CP437 kódolására készült ). Ennek eredményeként több probléma is felmerült:
- a helytelen dekódolás problémája;
- a karakterkészlet korlátozásának problémája;
- az egyik kódolás másikká konvertálásának problémája;
- betűtípus-duplikációs probléma.
A helytelen dekódolás problémája olyan idegen nyelvű karakterek megjelenését okozta a dokumentumban, amelyeket a dokumentumban nem szántak, vagy olyan pszeudo -grafikus karaktereket, amelyeket nem szántak, és amelyeket az orosz nyelvű felhasználók "krakozyabry"-nak neveztek. A problémát nagyrészt az okozta, hogy nem létezik szabványosított űrlap a fájl vagy adatfolyam kódolásának megadásához. A probléma megoldható lenne a kódolást meghatározó szabvány következetes bevezetésével, vagy egy közös kódolás bevezetésével minden nyelvre. [5]
A korlátozott karakterkészlet problémája [5] . A probléma megoldható a dokumentumon belüli betűtípusváltással, vagy egy "széles" kódolás bevezetésével. A betűtípusváltást régóta gyakorolják a szövegszerkesztőkben , és gyakran használtak nem szabványos kódolású betűtípusokat , az ún. "dingbat betűtípusok". Ennek eredményeként, amikor egy dokumentumot egy másik rendszerre próbáltak átvinni, minden nem szabványos karakter "őrültté" vált.
Az egyik kódolás másikká konvertálásának problémája . A probléma megoldható úgy, hogy minden egyes kódoláspárhoz konverziós táblázatokat állítunk össze, vagy egy közbenső konverziót használunk egy harmadik kódolásra, amely az összes kódolás összes karakterét tartalmazza [9] .
Font sokszorosítási probléma . Minden kódoláshoz más betűtípust hoztak létre, még akkor is, ha a kódolásokban szereplő karakterkészletek részben vagy teljesen megegyeztek. A problémát "nagy" betűtípusok készítésével lehetne megoldani, amelyekből utólag kiválasztanák az adott kódoláshoz szükséges karaktereket. Ehhez azonban egyetlen karakternyilvántartást kellett létrehozni annak meghatározásához, hogy mi felel meg minek.
Felismerték, hogy egyetlen „széles” kódolásra van szükség. A Kelet-Ázsiában elterjedt változó karakterhosszúságú kódolásokat túl nehéznek találták használni, ezért a rögzített szélességű karakterek használata mellett döntöttek. A 32 bites karakterek használata túl pazarlónak tűnt, ezért a 16 bites karakterek használata mellett döntöttek.
A Unicode első verziója egy 16 bites fix karakterméretű kódolás volt, vagyis a kódok teljes száma 2 16 (65 536) volt. Azóta a karaktereket négy hexadecimális számjeggyel jelölik (például U+04F0). Ugyanakkor azt tervezték, hogy nem az összes meglévő karaktert kódolják Unicode-ban, hanem csak azokat, amelyek a mindennapi életben szükségesek. A ritkán használt szimbólumokat a kódokat eredetileg elfoglaló „ magánhasználati területen ” kellett elhelyezni U+D800…U+F8FF. Annak érdekében, hogy a Unicode-ot közbenső hivatkozásként is használhassa a különböző kódolások egymásra konvertálásakor, a leghíresebb kódolásokban szereplő összes karaktert tartalmazza.
A jövőben azonban úgy döntöttek, hogy az összes karaktert kódolják, és ezzel kapcsolatban jelentősen kibővítik a kódterületet. Ugyanakkor a karakterkódokat nem 16 bites értékeknek, hanem absztrakt számoknak kezdték tekinteni, amelyek számítógépen sokféleképpen ábrázolhatók (lásd az ábrázolási módszereket ).
Mivel számos számítógépes rendszerben (például Windows NT [10] ) már fix 16 bites karaktereket használtak alapértelmezett kódolásként, úgy döntöttek, hogy az összes legfontosabb karaktert csak az első 65 536 pozíción belül kódolják (az ún. angol Basic Multilingual Plane, BMP néven ). A hely többi részét a "kiegészítő karakterek" használják : kihalt nyelvek írásrendszerei vagy nagyon ritkán használt kínai karakterek, matematikai és zenei szimbólumok.
A régebbi 16 bites rendszerekkel való kompatibilitás érdekében kitalálták az UTF-16 rendszert , ahol az első 65 536 pozíció, az U+D800…U+DFFF intervallum pozícióinak kivételével, közvetlenül 16 bites számként jelenik meg, a többit pedig ábrázolja. mint "helyettesítő párok » (a pár első eleme az U+D800…U+DBFF régióból, a pár második eleme az U+DC00…U+DFFF régióból). A helyettesítő párok esetében a kódterület egy részét (2048 pozíciót) használták fel, amelyet "magánhasználatra" osztottak ki.
Mivel az UTF-16-ban csak 2 20 +2 16 −2048 (1 112 064) karakter jeleníthető meg , ezt a számot választottuk a Unicode kódtér végső értékeként (kódtartomány: 0x000000-0x10FFFF).
Bár a Unicode kódterületet már a 2.0-s verzióban kiterjesztették 2 16 fölé , a "felső" régió első karakterei csak a 3.1-es verzióban kerültek elhelyezésre.
Ennek a kódolásnak a szerepe a webszektorban folyamatosan növekszik. 2010 elején a Unicode-ot használó weboldalak aránya körülbelül 50% volt [11] .
Unicode verziók
A szabvány véglegesítésére irányuló munka folytatódik. Az új verziók a szimbólumtáblázat változásával és növekedésével jelennek meg. Ezzel párhuzamosan új ISO /IEC 10646 dokumentumok kiadása is folyamatban van.
Az első szabványt 1991-ben adták ki, a legújabbat jelenleg 2021-ben. A szabvány 1.0-5.0 verziói könyvként jelentek meg, és ISBN-nel is rendelkeznek [ 12] [13] .
A szabvány verziószáma három számjegyből áll (például 3.1.1). A harmadik számjegy akkor változik, ha a szabványban olyan kisebb változtatásokat hajtanak végre, amelyek nem adnak hozzá új karaktereket (kivételt képez az 1.0.1-es verzió, amely egységes ideogrammokat adott hozzá a kínai, japán és koreai betűkhöz ) [14] .
A Unicode Karakteradatbázis minden verzióhoz elérhető a hivatalos weboldalon egyszerű szöveges és XML formátumban is. A fájlok BSD-szerű licenc alatt kerülnek terjesztésre .
Unicode verziók
Verziószám
|
Megjelenés dátuma
|
Könyv
ISBN |
ISO/IEC 10646 kiadás
|
Szkriptek száma
|
Karakterek száma [A 1 ]
|
Változtatások
|
1.0.0 [15]
|
1991. október
|
ISBN 0-201-56788-1 (1. kötet)
|
|
24
|
7161
|
Kezdetben a Unicode a következő írások karaktereit tartalmazta: arab , örmény , bengáli , zsujin , cirill , dévanagari , grúz , görög , kopt , gudzsaráti , gurmukhi , hangul , héber , hiragana , kannada , latin , lao maayaal , , oriyaal , Tamil írás , telugu írás , thai és tibeti írás [16]
|
1.0.1
|
1992. június
|
ISBN 0-201-60845-6 (2. kötet)
|
|
25
|
28 359
|
20 902 egyesített kínai, japán és koreai ideogram hozzáadva [17]
|
1.1 [18]
|
1993. június
|
|
ISO/IEC 10646-1:1993
|
24
|
34 233
|
4306 hangul szótag került hozzáadásra a kódolásban már szereplő 2350 karakter kiegészítésére. Tibeti karakterek eltávolítva [19]
|
2.0 [20]
|
1996. július
|
ISBN 0-201-48345-9
|
ISO/IEC 10646-1:1993 és 5., 6., 7. módosítás
|
25
|
38 950
|
A korábban hozzáadott hangul szótagokat eltávolítottuk , és 11 172 új hangul szótagot adtak hozzá új kódokkal. Visszaadta a tibeti írás korábban törölt karaktereit ; szimbólumok új kódokat kaptak, és különböző táblázatokba kerültek. Bevezették a helyettesítő ( angolul surrogate ) karakterek mechanizmusát . Lefoglalt hely a 15. és 16. síkok számára ( eng. planes ) [21]
|
2.1 [22]
|
1998. május
|
|
ISO/IEC 10646-1:1993, 5., 6., 7. módosítás, két karakter a 18. módosításból
|
25
|
38 952
|
Hozzáadott euró szimbólum és helyettesítő szimbólum [23]
|
3.0 [24]
|
1999. szeptember
|
ISBN 0-201-61633-5
|
ISO/IEC 10646-1:2000
|
38
|
49 259
|
Hozzáadott cseroki szkript , etióp írás , khmer írás , mongol írás , burmai írás , ogham írás , rúnák , szingaléz írás , szír írás , tana szkript , kanadai szótagírás és forgatókönyv , valamint Braille karakterek [25]
|
3.1 [26]
|
2001. március
|
|
ISO/IEC 10646-1:2000
ISO/IEC 10646-2:2001
|
41
|
94 205
|
Hozzáadott Deseret, Gothic és Old Ital , valamint nyugati és bizánci zenei szimbólumok , 42 711 egységes kínai , japán és koreai ideogramma . Lefoglalt hely az 1. , 2. és 14. síknak [27]
|
3.2 [28]
|
2002. március
|
|
ISO/IEC 10646-1:2000 és 1. módosítás
ISO/IEC 10646-2:2001
|
45
|
95 221
|
Buhid , hanunoo , baybayin és tagbanwa [29] szkript hozzáadva
|
4.0 [30]
|
2003. április
|
ISBN 0-321-18578-1
|
ISO/IEC 10646:2003
|
52
|
96 447
|
Hozzáadott ciprusi , limbu , lineáris B , szomáli , ábécé megjelenítése , Ly és ugariti , valamint hexagram szimbólumok [31]
|
4.1 [32]
|
2005. március
|
|
ISO/IEC 10646:2003 és 1. módosítás
|
59
|
97 720
|
Hozzáadtuk a Lontar írást , a glagolita írást , a kharoshthi írást , az új Ly írást , a régi perzsa ékírást , a Sylkhet Nagari írást és a régi líbiai írást . A kopt írás szimbólumait elválasztották a görög írástól . A régi görög számok szimbólumai, az ókori Görögország zenei szimbólumai és a hrivnya szimbólum ( Ukrajna pénzneme ) is hozzáadásra került [33]
|
5.0 [34]
|
2006. július
|
ISBN 0-321-48091-0
|
ISO/IEC 10646:2003, 1., 2. módosítás, négy karakter a 3. módosításból
|
64
|
99 089
|
Hozzáadott balinéz , ékírásos , N'Ko , mongol tér és föníciai [35]
|
5.1 [36]
|
2008. április
|
|
ISO/IEC 10646:2003 és 1., 2., 3., 4. módosítás
|
75
|
100 713
|
Kári írás , cham írás , kaya -li írás , lepcha írás , lícia írás , líd írás , ol-chiki írás , rejang írás , szaurashtra írás , szundanai írás , ótörök írás és vai írás . A Phaistos korongszimbólumok, a mahjong és a dominó kocka szimbólumok , a nagybetűs escet ( ẞ), valamint a középkori kéziratokban az rövidítéshez használt latin betűk kerültek hozzáadásra . Új szimbólumok hozzáadva a burmai karakterkészlethez [37]
|
5.2 [38]
|
2009. október
|
|
ISO/IEC 10646:2003 és 1., 2., 3., 4., 5., 6. módosítás
|
90
|
107 361
|
Hozzáadott aveszta írás , bamum írás , egyiptomi hieroglifa írás ( Gardiner 1071 karaktert tartalmazó listája szerint) , császári arám írás , pahlevi epigráfiai írás , pártus epigráfiai írás , jávai írás , litván írás Manipuri írás , dél-arábiai írás , ótörök írás , szamaritánus írás , lanna írás és thai viet írás . Hozzáadott 4149 új , egységesített ideogrammát a kínai, japán és koreai írásból (CJK-C), védikus karaktereket , tenge szimbólumot ( Kazahsztán pénzneme ), és kibővítette a régi hangul chamo karakterkészletét [39].
|
6.0 [40]
|
2010. október
|
|
ISO/IEC 10646:2010 és indiai rúpia szimbólum
|
93
|
109 449
|
Hozzáadott Batak script , Brahmi script , Mandaean script . Hozzáadott szimbólumok kártyajátékokhoz , útjelző táblákhoz , térképekhez , alkímiához , hangulatjelekhez és emojikhoz , valamint 222 egységes ideogram a kínai, japán és koreai nyelvekhez (CJK-D) [41]
|
6.1 [42]
|
2012. január
|
|
ISO/IEC 10646:2012
|
100
|
110 181
|
Hozzáadott Chakma forgatókönyv , Meroitic kurzív és meroit karakterek , Miao forgatókönyv , Charade forgatókönyv , Sorang Sompeng forgatókönyv , és Takri forgatókönyv [43]
|
6.2 [44]
|
2012. szeptember
|
|
ISO/IEC 10646:2012 és török líra szimbólum
|
100
|
110 182
|
Török líra szimbólum hozzáadva ( Törökország pénzneme ) [45]
|
6.3 [46]
|
2013 szeptember
|
|
ISO/IEC 10646:2012 és hat karakter
|
100
|
110 187
|
Öt karakter hozzáadva a kétirányú formázáshoz [47]
|
7.0 [48]
|
2014. június 16
|
|
ISO/IEC 10646:2012, 1., 2. módosítás és rubel szimbólum
|
123
|
113 021
|
Hozzáadva : Bassa Script , Aghwan Script, Duploye Shorthand , Elbasan Script , Grantha Script , Khodjiki Script , Khudavadi Script , Linear A Script , Mahajani Script , Manichaean Script , Kikakui Script , Mrodi Script [ en , nabateus írás , észak-arábiai írás , óperm írás , pahau írás , palmürai írás , chin ho írás ] , pahlavi zsoltár írás , sziddhamatrika , tirhuta írás , varang-ksiti és dingbat dísz , valamint az orosz rubel és az azerbajdzsáni manat szimbóluma [49]
|
8.0 [50]
|
2015. június 17
|
|
ISO/IEC 10646:2014, 1. módosítás, lari szimbólum , 9 egységes CJK-ideogram, 41 hangulatjel
|
129
|
120 737
|
Hozzáadott Ahom-szkript , anatóliai hieroglifák , hatrán-szkript , multani szkript , magyar rúnák , jelírás , 5776 CJK egyesített ideogramma - E kiterjesztés , kisbetűs cseroki betűk , latin betűk a német dialektológiához, 41 hangulatjel- színváltoztató szimbólum és öt szimbólum . Lari szimbólum hozzáadva ( grúz pénznem ) [51]
|
9.0 [52]
|
2016. június 21
|
|
ISO/IEC 10646:2014, 1., 2. módosítás, adlam, neva, japán TV-karakterek, 74 hangulatjel és szimbólum
|
135
|
128 237
|
Adlam Script , Bhaikshuki Script , Marchen Script , Neva Script , Osage Script , Tangut Script , valamint 72 hangulatjel és japán karakter TV-hez [53]
|
10,0 [54]
|
2017. június 20
|
|
ISO/IEC 10646:2017, 56 hangulatjel , 285 hentaigana karakter , 3 Zanabazar négyzet karakter
|
139
|
136 755
|
Hozzáadott Zanabazara Square Script , Soyombo Script, Masarama Gondi , Nu Shu Script , Hentaigan Script , 7494 CJK egységes ideogrammák - F kiterjesztés , 56 hangulatjel és Bitcoin szimbólum [55]
|
11.0
|
2018. június
|
|
ISO/IEC 10646:2017
|
146
|
137 439
|
Dogra, grúz mtavruli írás, Gunjal Gondi, Hanifi , indiai sziják számok, makassar írásmód, medefeydrin, (régi) szogd írás , maja számok , 5 CJK ideogramm, Xiangqi szimbólumok és félcsillagok hozzáadva az értékeléshez, valamint 145 emoji szimbólumok hangulatjel frizura változtatások és copyleft szimbólum [56] [57] [58]
|
12.0
|
2019. március
|
|
ISO/IEC 10646:2017, 1., 2. módosítás, plusz 62 további karakter
|
150
|
137 993
|
Elimai szkript hozzáadva, nadinagari, Hmong, Wancho, kiegészítések a Pollard íráshoz , kis kana a régi japán szövegekhez, történelmi törtek és tamil karakterek , laoszi betűk páli nyelvhez , latin betűk az ugariti átíráshoz, egyiptomi hieroglifa formázási vezérlőkarakterek és 61 hangulatjel [59] [60]
|
12.1
|
2019. május
|
|
|
150
|
137 994
|
Rave korszak négyzet szimbólum hozzáadva [61] [62]
|
13.0
|
2020. március
|
|
|
154
|
143 859
|
Hozzáadott Khwarezmian Script , Dives Akur Script , Khitan Minor Script , Yezidi Script , 4969 CJK ideogram (beleértve a 4939 CJK egységes ideogrammát – G bővítmény ), valamint 55 emoji , Creative Commons karakterek és karakterek az örökséghez. Lefoglalt hely a 3. síknak [63] [64]
|
14.0
|
2021. szeptember
|
|
|
159
|
144 697
|
Hozzáadott toto , ciprusi-minószi , vitkut , régi ujgur , tangsa , további latin karakterek ( Latin Extended - F , Latin Extended - G blokkok ) az IPA-bővítményekben való használatra , arab írás hozzáadása az afrikai, iráni nyelveken, Pakisztánban, Malajziában , Indonézia, Java és Bosznia, valamint a Koránban használható bővítmények, egyéb Észak-Amerika, Fülöp-szigetek, India és Mongólia nyelveit támogató kiegészítők, valamint a szóma szimbólum hozzáadása, a Znamenny jelöléssel és 37 hangulatjellel .
|
15.0
|
2022. szeptember
|
|
|
161
|
149 186
|
Naga ábécé hozzáadva Mundari (≈1950), kawi ( régi jávai), kaktovik számok , cirill karakterek az átíráshoz, latin betűk a malajálamhoz , 3 ligatúra a török Koránból, 1 egyiptomi hieroglifa, szimbólumok az elhasználódott egyiptomi hierogok megjelenítéséhez Dzsainizmus, egy bahá'i csillag , öt transz-neptunusz tárgy szimbóluma és 31 hangulatjel (beleértve a bőrszínt is).
|
Megjegyzések
- ↑ Beleértve a grafikus karaktereket ( eng. graphic ), a vezérlőkaraktereket ( eng. control ) és a formázási karaktereket ( angol formátum ); nem tartalmazza a magáncélú karaktereket ( eng. private-use ), a nem karakteres karaktereket ( eng. noncharacters ) és a helyettesítőket ( angol helyettesítő kódpontok ).
|
Kódterület
Bár az UTF-8 jelölés legfeljebb 221 (2097152) kódpont kódolását teszi lehetővé , az a döntés született, hogy az UTF-16-tal való kompatibilitás érdekében csak az 1112064 kódot használjuk. Jelenleg azonban ez is bőven elég - a 14.0-s verzióban mindössze 144 697 kódpozíciót használnak.
A kódtér 17 síkra ( angol síkokra ) van felosztva , 2 16 (65 536) karakterből. A nulla síkot ( 0. sík ) alapnak ( basic ) nevezzük, és a leggyakrabban használt szkriptek szimbólumait tartalmazza. A fennmaradó síkok kiegészítők ( kiegészítők ). Az első síkot ( 1. sík ) főleg történeti írásokhoz használják , a másodikat ( 2. sík ) ritkán használt kínai karakterekhez ( CCH ) , a harmadikat ( 3. sík ) az archaikus kínai karaktereknek tartják fenn [65] . A 14-es sík a speciális célra használt szimbólumok számára van fenntartva. A 15-ös és 16-os repülőgépek magánhasználatra vannak fenntartva [6] .
Unicode-karakterek jelöléséhez egy „U + xxxx ” (0 ... FFFF kódokhoz), „U + xxxxx ” (10000 ... FFFFF kódokhoz), vagy „U + xxxxxx ” ( kódokhoz) formátumú bejegyzést. 100000 ... 10FFFF), ahol az xxx hexadecimális számjegy , használatos. Például az "I" karakter (U+044F) kódja 044F 16 = 1103 10 .
Unicode repülőgépek
|
Repülőgép |
Név |
Karaktertartomány
|
0 |
Basic Multilingual Plane ( BMP ) |
U+0000…U+FFFF
|
egy |
Kiegészítő többnyelvű sík ( SMP ) |
U+10000…U+1FFFF
|
2 |
Kiegészítő ideográfiai sík ( SIP ) |
U+20000…U+2FFFF
|
3 |
harmadlagos ideográfiai sík ( TIPP ) |
U+30000…U+3FFFF
|
4-13 |
nem használt |
U+40000…U+DFFFF
|
tizennégy |
Kiegészítő speciális célú repülőgép ( SSP ) |
U+E0000…U+EFFF
|
15-16 |
További területek magánhasználatra ( kiegészítő magánhasználati terület-A/B, SPUA-A/B ) |
U+F0000…U+10FFFF
|
Kódrendszer
Az univerzális kódrendszer (Unicode) grafikus karakterek halmaza, és kódolásuk módja a szöveges adatok számítógépes feldolgozásához.
A grafikus szimbólumok olyan szimbólumok, amelyeknek látható képük van. A grafikus karaktereket a vezérlőkarakterekkel és a formázási karakterekkel állítják szembe.
A grafikus szimbólumok a következő csoportokat tartalmazzák:
A Unicode a szöveg lineáris megjelenítésére szolgáló rendszer. A további felső vagy alsó index elemekkel rendelkező karakterek bizonyos szabályok szerint felépített kódsorozatként (összetett változat, összetett karakter) vagy egyetlen karakterként (monolit változat, előre összeállított karakter) ábrázolhatók. 2014 óta úgy gondolják, hogy a nagy szkriptek minden betűje benne van a Unicode-ban, és ha egy karakter elérhető összetett változatban, akkor nem szükséges monolitikus formában megkettőzni.
Általános elvek
Stabilitási garanciák
Amint egy karakter megjelent a kódolásban, nem mozdul el vagy nem tűnik el. Így minden új Unicode a régi szuperkészlete lesz. Ha módosítani kell a karakterek sorrendjét, akkor ez nem pozícióváltással, hanem nemzeti rendezési sorrenddel történik. Vannak más, finomabb garanciák a stabilitásra – például a normalizációs táblák nem változnak
[66] .
Dinamikus összekapcsolás
Az olyan magasztos célt, mint az egyetemesség, a Unicode a nyomtatott szöveg dinamikus összeállításával éri el. Néha monolit karaktereket is készítenek a kényelem kedvéért, de általában
A + ¨ = Ä .
logikus sorrend
A karakterek sorrendje nagyjából megegyezik az olvasási és gépelési sorrenddel, és nem azonos a megjelenítési sorrenddel, különösen a kétirányú szövegben. Vannak történelmi kivételek: például
Laosziban a magánhangzók a mássalhangzó elé kerülhetnek, bár utána olvassák őket.
Konvertibilitás
Ha ugyanannak a karakternek két alakja különböző pozíciókban van kódolva egy fontos kódolásban, akkor az Unicode is az. Az átalakítás nem feltétlenül 1:1 – egy másik kódolású karakter átalakítható több Unicode karakterré, és fordítva.
Egyszerű szöveg
Az Unicode egyszerű szöveget kódol dekoráció nélkül. Úgy gondolják, hogy az egyszerű szövegnek elegendő adatot kell tárolnia ahhoz, hogy olvashatóan jelenítse meg, és semmi mást.
Szemantika
A karaktertulajdonságok formális beállítása
CSV és
XML formátumok használatával történik .
Szimbólumok, nem karakterjelek
A szimbólum a jelentés egysége. Karakterjel - egy betűtípusban lévő kép, amely megjelenik a képernyőn / nyomtatásban.
Például egy arab stílusú
nasta'liq szkript több ezer karakterjelet tartalmazna. De a kódolásban körülbelül 200 szabványos arab karakter található, amelyek közvetítik a jelentést. Ezzel szemben néha (lásd: Egyesítés ) a különböző karaktereknek ugyanaz a karakterjelük lehet.
Sokoldalúság
A Unicode különböző nyelvű és szakmák számára készült: üzleti életben, oktatásban, vallásban és tudományban dolgozók számára, modern és történelmi szövegekhez.
Az Unicode-on kívül a következők:
- szkriptek, amelyekről keveset tudunk a karakterek megbízható kódolásáról;
- olyan szkriptek, amelyek felhasználói nem értek el de facto szabványt;
- nem szöveges (például piktogramos) szkriptek.
Egyesítés
A Unicode megpróbálja nem duplikálni a karaktereket. Tehát az angol "wai" betű, a francia "y" és a német "upsilon" ugyanaz az
Y kódhely . Ezenkívül a hasonló kínai és japán hieroglifák egy kódhelyet jelentenek.
Számos fontos kivétel van. A különböző szkriptek hasonló betűi különböző kódpozíciókkal vannak kódolva. A feldolgozás leegyszerűsítése érdekében gyakran megkettőződnek a pozíciók – például a Unicode-ban három Ð betű van különböző kisbetűkkel.
A matematikai körvonal és a hangok lágyságát jelző azonos vonás különböző szimbólumok, a második módosító betűnek tekinthető. A konvertálhatóság ellentétes lehet az egységesítéssel – a kisbetűs görög
szigmának két különböző formája van, és ezek különböző kódpozíciók.
Hatékonyság
A Unicode-ot úgy tervezték, hogy a hatékony megvalósítás megvalósítható legyen. A karakterkódok egymást követő számok 0 és 10FFFF között 16 , ez lehetővé teszi a
keresőtáblák kezelését . Az UTF-8 és az UTF-16 önszinkronizáló kódok, a legfontosabb karakterek dekódolás nélkül is elérhetők. A Unicode elkerüli a belső állapotot megváltoztató formátumkaraktereket. És még sok más.
Konzorciumi szabályzat
A konzorcium nem újat alkot, hanem kimondja a dolgok kialakult rendjét [67] . Például " emoji " képeket adtunk hozzá, mert a japán mobilszolgáltatók széles körben használták őket. Ehhez egy karakter hozzáadása bonyolult folyamaton megy keresztül [67] . És például az orosz rubel szimbóluma három hónap alatt átment rajta, amint hivatalos státuszt kapott, előtte pedig de facto sok éven át használták, és megtagadták a Unicode-ba való felvételét.
A védjegyek csak kivételként vannak kódolva. Tehát a Unicode-ban nincs Windows vagy Apple Apple zászló .
A hangulatjelek nem kerülnek be a Unicode-ba, ha: [68]
- A koncepció a meglévő szimbólumok kombinációjával érhető el: „mosson kezet” = „víz” + „kéz”. A mókust gyakran mókus képeként ábrázolják .
- A koncepció túlságosan specifikus: ha egy japán sushi étel képén például garnélarákos sushit rajzolnak, akkor ne kérjen más típusú sushit.
- A koncepció új kiegészítések hullámát indíthatja el.
- A kép szöveget tartalmaz. A konzorcium abbahagyta az ilyen hangulatjelek bevonását.
- A kép átmeneti (például a COVID-19 vírus ). Egyes gyártók vírust rajzolnak a "csíra" emoji helyére.
- Egy adott kép kódolása szükséges (például egy internetes mém ).
- Változások a menetirányban: például egy futó fut a másik irányba.
Kombinálható karakterek
A Unicode karakterei alap ( angol alapkarakterek ) és kombinált ( angol kombináló karakterek ) csoportokra oszthatók . A kombinált szimbólumok általában követik az alapot, és bizonyos módon megváltoztatják annak megjelenítését. A kombinált karakterek közé tartoznak például a diakritikus jelek , az ékezetes jelek. Például az orosz "Y" betű a Unicode-ban írható "И" (U+0418) alapkarakterként, és az alapkarakter felett megjelenő "̆" (U+0306) kombinált karakterként.
A kombinált karakterek a Unicode karaktertáblázatokban speciális kategóriákkal vannak megjelölve:
- Nonspacing Mark - nem intervallum (nem kiterjesztett) jel; általában az alapkarakter felett vagy alatt jelennek meg, és nem foglalnak el külön vízszintes helyet (távközt) a megjelenített sorban;
- Befoglaló jel - keretjel; ezek a karakterek szintén nem foglalnak el külön vízszintes helyet (szóközt) a megjelenített sorban, hanem az alapkarakter több oldalán jelennek meg egyszerre;
- Spacing Combining Mark - intervallum (kiterjesztett) kombinálható jel; ezek az alapkarakterhez hasonlóan külön vízszintes pozíciót (távközt) foglalnak el a renderelt karakterláncban.
A kombinálható karakterek speciális típusa a variációválasztó . Csak azokat az alapkaraktereket érintik, amelyekhez ilyen változatok vannak meghatározva. Például az Unicode 5.0-s verziójában számos matematikai szimbólumhoz, a hagyományos mongol karakterekhez és a mongol négyzetkarakterekhez vannak definiálva a karakterváltozatok .
Normalizációs algoritmusok
A Unicode-ban kombinálható karakterek jelenléte miatt ugyanazok a karakterek különböző kódokkal ábrázolhatók. Így például a fenti példában az "Y" betű írható külön karakterként, vagy az alap és a kombinált karakter kombinációjaként. Emiatt a karakterláncok bájtonkénti összehasonlítása lehetetlenné válik. A normalizációs űrlapok ezt a problémát úgy oldják meg, hogy a karaktereket egy bizonyos szabványos formává alakítják át . Az átküldés a karakterek ekvivalens karakterekkel való helyettesítésével történik táblázatok és szabályok segítségével. A „dekompozíció” egy karakter felcserélése (felbontása) több alkotó karakterre, a „kompozíció” pedig éppen ellenkezőleg, több alkotó karakter helyettesítése (kombinációja) egy karakterrel.
A Unicode szabvány négy szövegnormalizációs algoritmust határoz meg: NFD, NFC, NFKD és NFKC.
NFD
NFD, eng. n D normalizálási forma (" D " az angol dekompozícióból ), a D normalizálás formája - kanonikus dekompozíció - olyan algoritmus, amely szerint az összetett karakterek ( angol előre összeállított karakterek ) rekurzív felbontása egy vagy több egyszerű karakterből álló sorozatra történik, összhangban táblázatok bontásával. Rekurzív, mert a dekompozíció során egy összetett karakter több másikra is felbontható, amelyek egy része szintén összetett, és amelyekre további bontást alkalmaznak.
Példák:
NFC
NFC, angol A C normalizálási forma ( "C" az angol c omposition szóból ), a C normalizációs forma egy olyan algoritmus, amely szerint a kanonikus dekompozíció és a kanonikus kompozíció egymás után történik. Először a kanonikus dekompozíció (az NFD algoritmus) a szöveget D formává redukálja. Ezután a kanonikus kompozíció, az NFD inverze, az elejétől a végéig feldolgozza a szöveget, figyelembe véve a következő szabályokat:
- egy karakter Sakkor tekinthető kezdőnek , ha nulla kombinálhatósági osztálya ( eng. combining class of zer ) van a Unicode karaktertáblázat szerint;
- bármely karakterrel kezdődő karaktersorozatban Sa karakter csak akkor Cblokkolható, Sha a Sés között Cvan olyan karakter B, amely vagy kezdő, vagy azonos vagy nagyobb kombinálhatósági osztályú, mint a C. Ez a szabály csak azokra a karakterláncokra vonatkozik, amelyek kanonikus felbontáson estek át;
- egy karakter akkor tekinthető elsődleges összetettnek, ha az Unicode karaktertáblázatban kanonikus lebontással rendelkezik (vagy hangul esetében kanonikus felbontással rendelkezik, és nem szerepel a kizárási listán );
- egy Xkarakter akkor és csak akkor kombinálható elsődleges karakterrel Y, ha létezik olyan elsődleges összetett Z, amely kanonikusan egyenértékű a < X, Y> sorozattal;
- ha a következő karaktert Cnem blokkolja az utoljára talált kezdő alapkarakter L, és először sikeresen kombinálható vele, akkor Llecseréljük egy összetettre L-C, de Celtávolítjuk.
Példa:
NFKD
NFKD, eng. n ormalizációs forma KD , KD normalizációs forma - kompatibilis felbontás - olyan algoritmus, amely szerint a szövegkarakterek kanonikus felbontása és cseréje szekvenciálisan történik a kompatibilis felbontási táblázatok szerint. A kompatibilitási dekompozíciós táblázatok helyettesítik a majdnem egyenértékű szimbólumokat [69] :
- hasonló a betűkhöz (ℍ és ℌ);
- karikázva (①);
- átméretezett (カ és カ);
- elforgatva (︷ és {);
- fokok (⁹ és 9);
- frakciók (¼);
- mások (™).
Példák:
|
→
|
egy |
⁄ |
négy
|
U+0031 |
U+2044 |
U+0034
|
|
NFKC
NFKC, eng. n KC ormalizációs forma , a KC normalizációs forma egy olyan algoritmus, amely szerint a kompatibilis dekompozíció (NFKD algoritmus) és a kanonikus kompozíció (NFC algoritmus) egymás után kerül végrehajtásra.
Példák
Forrás szöveg |
NFD |
NFC |
NFKD |
NFKC
|
|
|
|
|
|
|
|
|
|
|
|
ſ |
̣ |
̇
|
U+017F |
U+0323 |
U+0307
|
|
|
s |
̣ |
̇
|
U+0073 |
U+0323 |
U+0307
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
V |
én |
én |
én
|
U+0056 |
U+0049 |
U+0049 |
U+0049
|
|
V |
én |
én |
én
|
U+0056 |
U+0049 |
U+0049 |
U+0049
|
|
|
|
|
|
|
Kétirányú írás
A Unicode szabvány támogatja a balról jobbra (LTR ) és a jobbról balra (RTL ) írási nyelveket is, mint például az arab és a héber . Mindkét esetben a karakterek "természetes" sorrendben vannak tárolva; megjelenítésüket a kívánt írási irány figyelembevételével az alkalmazás biztosítja.
Ezenkívül az Unicode támogatja a kombinált szövegeket, amelyek különböző írási irányokkal kombinálják a töredékeket. Ezt a funkciót kétirányúságnak nevezik ( angol bidirectional text, BiDi ). Egyes könnyű szövegfeldolgozók (például a mobiltelefonokban találhatók) támogathatják a Unicode-ot, de nem támogatják a kétirányúságot. Minden Unicode karakter több kategóriába sorolható: balról jobbra írva, jobbról balra írva és bármilyen irányba írva. Az utolsó kategória karakterei (többnyire írásjelek ) megjelenítéskor az őket körülvevő szöveg irányát veszik.
Kiemelt karakterek
A Unicode gyakorlatilag az összes modern szkriptet tartalmazza , beleértve:
- arab ,
- örmény ,
- bengáli ,
- burmai _
- glagolita ,
- görög_ _
- grúz ,
- devanagari ,
- zsidó ,
- cirill betűs ,
- kínai (a kínai karaktereket aktívan használják a japánban , és esetenként a koreaiban is ),
- kopt ,
- khmer ,
- latin ,
- tamil ,
- koreai (hangul) ,
- cherokee ,
- etióp _
- japán (amely a szótag ábécén kívül a kínai karaktereket is tartalmazza )
és mások.
Számos történelmi írást adtunk hozzá akadémiai célokra, például: germán rúnák , ótörök rúnák , ókori görög írások , egyiptomi hieroglifák , ékírás , maja írás , etruszk ábécé .
A Unicode matematikai és zenei szimbólumok, valamint piktogramok széles skáláját kínálja .
Az állami zászlók közvetlenül nem szerepelnek a Unicode-ban. 26 alfa-karakterből álló párokba vannak kódolva, amelyek az ISO 3166-1 alfa-2 kétbetűs országkódokat képviselik . Ezek a betűk az U+1F1E6 🇦 regionális jelző szimbólum a betű (HTML 🇦) és U+1F1FF 🇿 regionális jelző szimbólum z betű (HTML 🇿) tartományba vannak kódolva.
A Unicode alapvetően kizárja a vállalati és terméklogókat , bár előfordulnak betűtípusokban (például az Apple logó a MacRomanban (0xF0) vagy a Windows logó a Wingdingsben (0xFF)). Unicode betűtípusok esetén a logókat csak az egyéni karakterterületen szabad elhelyezni. Vannak ingyenes betűtípusok, amelyek vállalati logókat, szoftvertermékeket és egyéb védjegyeket tartalmaznak (például Font Awesome [70] ).
ISO/IEC 10646
Az Unicode Konzorcium szorosan együttműködik az ISO/IEC/JTC1/SC2/WG2 munkacsoporttal, amely az 10646 nemzetközi szabványt ( ISO / IEC 10646) fejleszti. Az Unicode szabvány és az ISO/IEC 10646 között van szinkronizálás, bár mindegyik szabvány saját terminológiát és dokumentációs rendszert használ.
Az Unicode Konzorcium együttműködése a Nemzetközi Szabványügyi Szervezettel ( English International Organisation for Standardization, ISO ) 1991 -ben kezdődött . 1993- ban az ISO kiadta a DIS 10646.1-et. A vele való szinkronizáláshoz a konzorcium jóváhagyta az Unicode 1.1-es verziójú szabványt, amely további karaktereket tartalmazott a DIS 10646.1-ből. Ennek eredményeként a Unicode 1.1 és DIS 10646.1 kódolt karaktereinek értéke pontosan megegyezett.
A jövőben is folytatódott az együttműködés a két szervezet között. 2000-ben az Unicode 3.0 szabványt szinkronizálták az ISO/IEC 10646-1:2000 szabvánnyal. Az ISO/IEC 10646 hamarosan megjelenő harmadik verziója szinkronban lesz a Unicode 4.0-val. Talán ezek a specifikációk egyetlen szabványként is megjelennek majd.
A Unicode UTF-16 és UTF-32 formátumaihoz hasonlóan az ISO/IEC 10646 két fő karakterkódolási formával is rendelkezik: UCS-2 (karakterenként 2 bájt, hasonló az UTF-16-hoz) és UCS-4 (karakterenként 4 bájt, hasonló UTF-32-re). Az UCS az univerzális kódolt karakterkészlet rövidítése . Az UCS-2 az UTF-16 részhalmazának tekinthető (UTF-16 helyettesítő párok nélkül), az UCS-4 pedig az UTF-32 szinonimája.
Az Unicode szabványok és az ISO/IEC 10646 közötti különbségek:
- kis különbségek a terminológiában;
- Az ISO/IEC 10646 nem tartalmazza a Unicode támogatás teljes megvalósításához szükséges szakaszokat:
- nincs adat a bináris karakterkódolásról;
- nincs leírás a karakterek összehasonlítására ( eng. collation ) és rajzolására ( eng. rendering ) szolgáló algoritmusokra;
- nincs lista a karaktertulajdonságokról (például nincs felsorolva a kétirányú írás támogatásához szükséges tulajdonságok listája) .
Bemutató módszerek
A Unicode-nak számos ábrázolási formája van ( angolul Unicode transzformációs formátum, UTF ): UTF-8 , UTF-16 (UTF-16BE, UTF-16LE) és UTF-32 (UTF-32BE, UTF-32LE). Hétbites csatornákon való átvitelre is kidolgozták az UTF-7 ábrázolás egy formáját , de az ASCII- vel való összeférhetetlenség miatt nem terjedt el széles körben, és nem szerepelt a szabványban. 2005. április 1-jén két viccábrázolási formát javasoltak: UTF-9 és UTF-18 ( RFC 4042 ).
A Microsoft Windows NT és az arra épülő Windows 2000 és Windows XP rendszerek elsősorban az UTF-16LE űrlapot használják . A UNIX - szerű operációs rendszerek GNU/Linux , BSD és Mac OS X az UTF-8 formát veszik át a fájlok és az UTF-32 vagy UTF-8 formát a memórián belüli karakterfeldolgozáshoz .
A Punycode a Unicode-karakterek szekvenciáinak úgynevezett ACE-szekvenciákba való kódolásának egy másik formája, amelyek csak alfanumerikus karakterekből állnak, amint az megengedett a tartománynevekben.
UTF-8
Az UTF-8 a Unicode legkompaktabb reprezentációja, és visszafelé kompatibilis a 7 bites ASCII rendszerrel ; a csak 128-nál kisebb számjegyű karakterekből álló szöveg UTF-8-ban írva egyszerű ASCII -szöveggé alakul, és bármely ASCII-vel együttműködő program megjelenítheti; fordítva, a 7 bites ASCII-be kódolt szöveg egy UTF-8-cal való együttműködésre tervezett programmal jeleníthető meg. A többi Unicode-karakter 2-4 bájt hosszúságú sorozatként jelenik meg, amelyben az első bájt mindig maszkot tartalmaz 11xxxxxx, a többi pedig - 10xxxxxx. Az UTF-8 nem használ helyettesítő párokat.
Az UTF-8 formátumot 1992. szeptember 2- án Ken Thompson és Rob Pike találta fel, és a 9. tervben valósította meg [71] . Az UTF-8 szabványt immár hivatalosan is rögzíti az RFC 3629 és az ISO/IEC 10646 D melléklet.
UTF-16 és UTF-32
Az UTF-16 egy olyan kódolás, amely lehetővé teszi Unicode karakterek írását az U + 0000 ... U + D7FF és U + E000 ... U + 10FFFF tartományban (összesen 1 112 064). Ebben az esetben minden karakter egy vagy két szóban van írva (helyettesítő pár). Az UTF-16 kódolást az ISO/IEC 10646 nemzetközi szabvány Q melléklete írja le, és lefedi az IETF RFC 2781 „UTF-16, az ISO 10646 kódolása” című szabvány is.
Az UTF-32 az Unicode megjelenítési módja, ahol minden karakter pontosan 4 bájtot foglal el. Az UTF-32 fő előnye a változó hosszúságú kódolásokkal szemben, hogy a benne lévő Unicode karakterek közvetlenül indexelhetők, így a karakter megtalálása a fájl pozíciószáma alapján rendkívül gyors lehet, és bármely karakter n- edik pozícióba kerülése olyan művelet, amely mindig elfoglalt. ugyanabban az időben. Ezenkívül nagyon egyszerűvé teszi a karakterek cseréjét az UTF-32 karakterláncokban. Ezzel szemben a változó hosszúságú kódolások szekvenciális hozzáférést igényelnek az n- edik karakterpozícióhoz , ami nagyon időigényes művelet lehet. Az UTF-32 fő hátránya a helytelen helykihasználás, mivel négy bájtot használnak bármilyen karakter tárolására. A legtöbb szövegben ritkán használják a kódtér nulla (alap)síkján kívül eső karaktereket. Ezért gyakran nem indokolt az UTF-16-hoz képest a karakterláncok által elfoglalt hely megduplázása az UTF-32-ben.
Endianness
Az UTF-16 adatfolyamban az alacsony bájt írható a magas bájt elé ( UTF -16 little-endian, UTF-16LE ), vagy a magas bájt után ( UTF-16 big-endian, UTF-16BE ) . Hasonlóképpen, a négybájtos kódolásnak két változata létezik - UTF-32LE és UTF-32BE.
Byte Sequence Marker
A Unicode használatának jelzésére egy szövegfájl vagy adatfolyam elején egy bájtsorrend-jel (BOM) továbbítható - egy U + FEFF karakter (nulla szélességű, megszakítás nélküli szóköz). Megjelenése alapján könnyen megkülönböztethető mind a Unicode ábrázolási formátum, mind a bájtok sorrendje. A bájtszekvencia marker a következő formájú lehet:
UTF-8
EF BB BF
UTF-16BE
FE FF
UTF-16LE
FF FE
UTF-32BE
0000FEFF
UTF-32LE
FF FE 00 00
Unicode és hagyományos kódolások
Az Unicode bevezetése a hagyományos 8 bites kódolások megközelítésének megváltozásához vezetett. Ha korábban egy ilyen kódolást mindig közvetlenül állítottak be, most a kódolás és a Unicode közötti megfelelési táblázattal lehet beállítani. Valójában szinte az összes 8 bites kódolás felfogható a Unicode valamely részhalmazának megjelenítésére. Ez pedig sokkal egyszerűbbé tette olyan programok létrehozását, amelyeknek sokféle kódolással kell működniük: most egy újabb kódolás támogatásához csak egy újabb karakterkonverziós táblázatot kell hozzáadnia a Unicode-hoz.
Ezenkívül számos adatformátum lehetővé teszi bármilyen Unicode karakter beszúrását, még akkor is, ha a dokumentum a régi 8 bites kódolással készült. Például a HTML-ben használhat "és" kódokat .
Megvalósítások
A legtöbb modern operációs rendszer bizonyos mértékig Unicode támogatást nyújt.
A Windows NT operációs rendszercsalád kétbájtos UTF-16LE kódolást használ a fájlnevek és egyéb rendszerkarakterláncok belső megjelenítésére. A karakterlánc-paramétereket felvevő rendszerhívások egy- és kétbájtos változatban érhetők el. További információkért tekintse meg a Unicode a Microsoft Windows család operációs rendszereiben című cikket .
A UNIX -szerű operációs rendszerek, köztük a GNU/Linux , BSD , OS X , UTF-8 kódolást használnak a Unicode megjelenítésére. A legtöbb program az UTF-8-cal ugyanúgy működik, mint a hagyományos egybájtos kódolással, függetlenül attól, hogy egy karakter több egymást követő bájtként jelenik meg. Az egyes karakterek kezeléséhez a karakterláncokat általában átkódolják UCS-4-be, így minden karakternek van egy megfelelő gépi szava .
Az Unicode egyik első sikeres kereskedelmi megvalósítása a Java programozási környezet volt . Alapvetően elhagyta a karakterek 8 bites ábrázolását, és a 16 bites helyett. Ez a döntés megnövelte a memóriafelhasználást, de lehetővé tette, hogy visszatérjen egy fontos absztrakció a programozáshoz: egy tetszőleges egyetlen karakter (típus char). A programozó különösen úgy dolgozhat egy karakterlánccal, mint egy egyszerű tömbbel. A siker nem volt végleges, a Unicode túlnőtt a 16 bites korláton, és a J2SE 5.0-ra ismét egy tetszőleges karakter kezdett elfoglalni változó számú memóriaegységet – egy charvagy kettő (lásd a pótpárt ).
Most[ mikor? ] többség[ mennyit? ] programozási nyelvek támogatják a Unicode karakterláncokat, bár azok megjelenítése a megvalósítástól függően változhat.
Beviteli módszerek
Mivel egyetlen billentyűzetkiosztás sem teszi lehetővé az összes Unicode karakter egyidejű bevitelét, az operációs rendszereknek és az alkalmazásprogramoknak támogatniuk kell a tetszőleges Unicode karakterek bevitelének alternatív módszereit.
A Windows 2000 - től kezdve a Character Map Utility (charmap.exe) támogatja a Unicode karaktereket, és lehetővé teszi azok vágólapra másolását . Csak az alapsík támogatott (U+0000…U+FFFF karakterkódok); karakterek U + 10000 kódokkal A "Karaktertábla" nem jelenik meg. Van egy hasonló táblázat a Microsoft Wordben .
Néha beírhat egy hexadecimális kódot, és nyomja meg a Alt+ gombot X, és a kód a megfelelő karakterre cserélődik, például a WordPadben vagy a Microsoft Wordben. A szerkesztőkben a Alt+ Xa fordított átalakítást is végrehajtja. A Windows környezetben futó programokban Unicode karakterhez az Alt billentyűt kell lenyomni, miközben lenyomja a karakterkód decimális értékét a numerikus billentyűzeten: például az Alt + 0171 és az Alt + 0187 kombinációk bal és jobb oldalt jelenítenek meg. halszálka idézőjelek , illetve Alt + 0151 - em kötőjel, Alt + 0769 - ékezetes jel , Alt + 0133 - ellipszis stb.
A Mac OS 8.5 és újabb verziók támogatják a „Unicode Hex Input” nevű beviteli módot. Az Option billentyű lenyomva tartása közben be kell írnia a kívánt karakter négyjegyű hexadecimális kódját. Ez a módszer lehetővé teszi az U+FFFD-nél nagyobb kódú karakterek bevitelét helyettesítőpárok használatával; ezeket a párokat az operációs rendszer automatikusan lecseréli egyetlen karakterre. Ezt a beviteli módot használat előtt aktiválni kell a rendszerbeállítások megfelelő részében, majd kiválasztani kell aktuális beviteli módként a billentyűzet menüjében.
A Mac OS X 10.2-től kezdve létezik egy "Karakterpaletta" alkalmazás is, amely lehetővé teszi karakterek kiválasztását egy táblázatból, amelyben kiválaszthat karaktereket egy adott blokkból vagy egy adott betűtípus által támogatott karakterekből.
GNU/Linux
A GNOME rendelkezik egy "Charmap" segédprogrammal ( korábban gucharmap), amely lehetővé teszi egy adott blokkból vagy írásrendszerből származó karakterek megjelenítését, és lehetőséget biztosít a karakternév vagy -leírás szerinti keresésre. Ha ismert a kívánt karakter kódja, akkor az ISO 14755 szabvány szerint beírható: a Ctrl+ gombok lenyomva tartása közben írja ⇧ Shiftbe a hexadecimális kódot (a GTK+ valamelyik verziójától kezdve a kód beírása előtt meg kell nyomni a "U" billentyű ). A beírt hexadecimális kód legfeljebb 32 bit hosszú lehet, így bármilyen Unicode karaktert beírhat helyettesítő párok használata nélkül.
Minden X Window alkalmazás , beleértve a GNOME-ot és a KDE -t is , támogatja a kulcsok bevitelét Compose. Azoknál a billentyűzeteknél, amelyek nem rendelkeznek külön Levélírás gombbal , bármilyen billentyű hozzárendelhető erre a célra, például .
⇪ Caps Lock
A GNU/Linux konzol kódjával Unicode karakter bevitelét is lehetővé teszi - ehhez a karakter decimális kódját kell beírni a kiterjesztett billentyűzetblokk számjegyeivel, miközben lenyomva tartja a billentyűt Alt. A karaktereket hexadecimális kódjukkal is beírhatja: ehhez tartsa lenyomva a billentyűt AltGr, az A-F számok beviteléhez pedig használja a kiterjesztett billentyűzetblokk gombjait től NumLock-ig ↵ Enter(óramutató járásával megegyező irányba). Az ISO 14755 szerinti bevitel is támogatott.A felsorolt metódusok működéséhez a konzolban az Unicode módot kell engedélyezni hívással unicode_start(1) és hívással kiválasztani a megfelelő betűtípust setfont(8).
A Mozilla Firefox for Linux támogatja az ISO 14755 karakterbevitelt.
Unicode problémák
A Unicode-ban az angol „a” és a lengyel „a” ugyanaz a karakter. Ugyanígy az orosz „a” és a szerb „a” azonos karakternek számít (de különbözik a latin „a”-tól). Ez a kódolási elv nem univerzális; látszólag "minden alkalomra" megoldás egyáltalán nem létezhet.
- A kínai , koreai és japán szövegeket hagyományosan felülről lefelé írják, a jobb felső saroktól kezdve. A vízszintes és függőleges írásmód váltása ezeknél a nyelveknél nem biztosított a Unicode-ban - ezt jelölőnyelvek vagy szövegszerkesztők belső mechanizmusai segítségével kell megtenni .
- Ugyanazon karakter különböző stílusainak jelenléte vagy hiánya a Unicode-ban, nyelvtől függően. Gondoskodni kell arról, hogy a szöveg mindig helyesen legyen megjelölve egy vagy másik nyelvre utalóként.
Tehát a kínai karakterek különböző stílusúak lehetnek kínai, japán ( kanji ) és koreai ( hancha ) nyelven, ugyanakkor a Unicode-ban ugyanaz a karakter jelöli őket (az úgynevezett CJK-egyesítés), bár az egyszerűsített és teljes karakterek továbbra is különböző kódokkal rendelkeznek.
Hasonlóképpen, az orosz és a szerb különböző stílusokat használ a p és t kurzív betűkhöz (szerbül úgy néznek ki, mint p ( i̅ ) és t ( sh̅ ), lásd szerb kurzív ).
- A kisbetűkről nagybetűkre történő fordítás a nyelvtől is függ. Például: a törökben İi és Iı betűk vannak – így a kis- és nagybetűk megváltoztatására vonatkozó török szabályok ütköznek az angollal , amelyek előírják, hogy az „i”-t „I”-re kell fordítani. Hasonló problémák vannak más nyelveken is - például a francia kanadai dialektusban az esetet kissé másképp fordítják, mint Franciaországban [72] .
- Még az arab számok esetében is vannak bizonyos tipográfiai finomságok: a számjegyek „nagybetűk” és „ kisbetűk ”, arányosak és monospace [73] - Unicode esetében nincs különbség köztük. Az ilyen árnyalatok a szoftvernél maradnak.
A hiányosságok egy része nem magához a Unicode-hoz kapcsolódik, hanem a szövegfeldolgozók képességeihez.
- A nem latin szövegfájlok az Unicode-ban mindig több helyet foglalnak el, mivel egy karaktert nem egy bájt kódol, mint a különböző nemzeti kódolásokban, hanem bájtok sorozata (a kivétel az UTF-8 azon nyelvek esetében, amelyek ábécé illeszkedik az ASCII-be, valamint két karakter jelenléte a szövegben és több olyan nyelv, amelyek ábécéje nem fér bele az ASCII-be [74] ). A Unicode tábla összes karakteréhez tartozó fontfájl viszonylag nagy memóriaterületet foglal el, és több számítási erőforrást igényel, mint a felhasználó egyetlen nemzeti nyelvének betűtípusa [75] . A számítógépes rendszerek teljesítményének növekedésével, valamint a memória és a lemezterület költségének csökkenésével ez a probléma egyre kevésbé jelentős; azonban továbbra is releváns a hordozható eszközök, például a mobiltelefonok esetében.
- Bár a Unicode-támogatás a leggyakoribb operációs rendszerekben van megvalósítva, még mindig nem minden alkalmazás támogatja a megfelelő munkát. Különösen a bájtsorrend-jeleket ( BOM ) nem mindig kezelik, és a diakritikus jelöléseket rosszul támogatják . A probléma átmeneti, és a Unicode szabványok (az egybájtos nemzeti kódolásokhoz képest) viszonylag újszerűségének a következménye.
- Az összes karakterlánc-feldolgozó program teljesítménye (beleértve az adatbázisban való rendezést is) csökken, ha egybájtos kódolás helyett Unicode-ot használunk.
Néhány ritka írásrendszer még mindig nincs megfelelően ábrázolva a Unicode-ban. A több betűre kiterjedő "hosszú" felső indexek ábrázolása, például az egyházi szláv nyelven , még nem valósult meg.
Az "Unicode" szó helyesírása
Az "Unicode" tulajdonnév (vagy egy név része, például az Unicode Consortium) és egy angol nyelvből származó köznév.
Első pillantásra előnyösebbnek tűnik az "Unicode" helyesírás használata. Az orosz nyelv már rendelkezik az "uni-" morfémákkal (az "uni-" latin elemet tartalmazó szavakat hagyományosan "uni-"-vel fordították és írták: univerzális, egypólusú, egységesítő, egységes) és "kód". Ezzel szemben az angolból kölcsönzött védjegyek átvitele általában gyakorlati átírással történik, amelyben a de-etimologizált "uni-" betűkombinációt "uni-"-ként írják (" Unilever ", " Unix " stb.), azaz pontosan úgy, mint a betűnkénti rövidítések esetében, mint például az UNICEF "United Nations International Children's Emergency Fund" - UNICEF .
A Konzorcium honlapján található egy külön oldal, amely a „Unicode” szó különféle nyelvekre és írásrendszerekre történő fordításának problémáit tárgyalja. Az orosz cirill ábécé esetében az Unicode-változatot jelöljük [1] . Az MS Windows az "Unicode" változatot is használja.
Az orosz nyelvű Wikipédia az Unicode változatot használja a legelterjedtebbnek.
Lásd még
Jegyzetek
- ↑ 1 2 Unicode átírás (angol) (a hivatkozás nem elérhető) . Letöltve: 2010. május 10. Az eredetiből archiválva : 2006. április 8..
- ↑ Az Unicode® szabvány: Műszaki bevezetés (lefelé irányuló kapcsolat) . Letöltve: 2010. július 4. Az eredetiből archiválva : 2010. március 10. (határozatlan)
- ↑ A Unicode megjelenési és megjelenési dátumainak története (hivatkozás nem érhető el) . Letöltve: 2010. július 4. Az eredetiből archiválva : 2010. január 10. (határozatlan)
- ↑ Az Unicode Konzorcium (lefelé irányuló kapcsolat) . Letöltve: 2010. július 4. Az eredetiből archiválva : 2010. június 27. (határozatlan)
- ↑ 1 2 3 Előszó (downlink) . Letöltve: 2010. július 4. Az eredetiből archiválva : 2010. június 27. (határozatlan)
- ↑ 1 2 Általános felépítés (elérhetetlen link) . Hozzáférés dátuma: 2010. július 5. Az eredetiből archiválva : 2010. június 27. (határozatlan)
- ↑ Európai alfabetikus szkriptek (downlink) . Letöltve: 2010. július 4. Az eredetiből archiválva : 2010. június 27. (határozatlan)
- ↑ Mi az Unicode?
- ↑ Unicode 88 (hivatkozás nem érhető el) . Letöltve: 2010. július 8. Az eredetiből archiválva : 2017. szeptember 6.. (határozatlan)
- ↑ Unicode és Microsoft Windows NT (angol) (a hivatkozás nem elérhető) . Microsoft támogatás . Letöltve: 2009. november 12. Az eredetiből archiválva : 2009. szeptember 26..
- ↑ A webhelyek majdnem 50%-a Unicode-ot használ (lefelé mutató hivatkozás) . Letöltve: 2010. február 9. Archiválva az eredetiből: 2010. június 11. (Orosz)
- ↑ A Unicode megjelenési és megjelenési dátumainak története
- ↑ Felsorolt verziók
- ↑ A verziókról
- ↑ Unicode® 1.0 . Unicode Consortium . Letöltve: 2017. december 8.
- ↑ Unicode Data 1.0.0 . Letöltve: 2017. december 4.
- ↑ Unicode Data 1.0.1 . Letöltve: 2017. december 4.
- ↑ Unicode® 1.1 . Unicode Consortium . Letöltve: 2017. december 8.
- ↑ Unicode Data 1995 . Letöltve: 2017. december 4.
- ↑ Unicode 2.0.0 . Unicode Consortium . Letöltve: 2017. december 8.
- ↑ Unicode Data 2.0.14 . Letöltve: 2017. december 4.
- ↑ Unicode 2.1.0 . Unicode Consortium . Letöltve: 2017. december 8.
- ↑ Unicode adatok 2.1.2 . Letöltve: 2017. december 4.
- ↑ Unicode 3.0.0 . Unicode Consortium . Letöltve: 2017. december 8.
- ↑ Unicode Data 3.0.0 . Letöltve: 2017. december 4.
- ↑ Unicode 3.1.0 . Unicode Consortium . Letöltve: 2017. december 8.
- ↑ Unicode Data 3.1.0 . Letöltve: 2017. december 4.
- ↑ Unicode 3.2.0 . Unicode Consortium . Letöltve: 2017. december 8.
- ↑ Unicode Data 3.2.0 . Letöltve: 2017. december 4.
- ↑ Unicode 4.0.0 . Unicode Consortium . Letöltve: 2017. december 8.
- ↑ Unicode Data 4.0.0 . Letöltve: 2017. december 4.
- ↑ Unicode 4.1.0 . Unicode Consortium . Letöltve: 2017. december 8.
- ↑ Unicode Data 4.1.0 . Letöltve: 2017. december 4.
- ↑ Unicode 5.0.0 . Unicode Consortium (2006. július 14.). Letöltve: 2017. december 8.
- ↑ Unicode Data 5.0.0 . Letöltve: 2017. december 4.
- ↑ Unicode 5.1.0 . Unicode Consortium (2008. április 4.). Letöltve: 2017. december 8.
- ↑ Unicode Data 5.1.0 . Letöltve: 2017. december 4.
- ↑ Unicode® 5.2.0 . Unicode Consortium (2009. október 1.). Letöltve: 2017. december 8.
- ↑ Unicode Data 5.2.0 . Letöltve: 2017. december 4.
- ↑ Unicode® 6.0.0 . Unicode Consortium (2010. október 11.). Letöltve: 2017. december 8.
- ↑ Unicode Data 6.0.0 . Letöltve: 2017. december 4.
- ↑ Unicode® 6.1.0 . Unicode Consortium (2012. január 31.). Letöltve: 2017. december 8.
- ↑ Unicode Data 6.1.0 . Letöltve: 2017. december 4.
- ↑ Unicode® 6.2.0 . Unicode Consortium (2012. szeptember 26.). Letöltve: 2017. december 7.
- ↑ Unicode Data 6.2.0 . Letöltve: 2017. december 4.
- ↑ Unicode® 6.3.0 . Unicode Consortium (2012. szeptember 30.). Letöltve: 2017. december 7.
- ↑ Unicode Data 6.3.0 . Letöltve: 2017. december 4.
- ↑ Unicode® 7.0.0 . Unicode Consortium (2014. június 16.). Letöltve: 2017. december 8.
- ↑ Unicode Data 7.0.0 . Letöltve: 2017. december 4.
- ↑ Unicode® 8.0.0 . Unicode Consortium (2015. június 17.). Letöltve: 2017. december 8.
- ↑ Unicode Data 8.0.0 . Letöltve: 2017. december 4.
- ↑ Unicode® 9.0.0 . Unicode Consortium (2016. június 21.). Letöltve: 2017. december 8.
- ↑ Unicode Data 9.0.0 . Letöltve: 2017. december 6.
- ↑ Unicode® 10.0.0 . Unicode Consortium (2017. június 27.). Letöltve: 2017. december 8.
- ↑ Unicode Data 10.0.0 . Letöltve: 2017. december 7.
- ↑ Unicode Data 11.0.0 . Hozzáférés időpontja: 2019. április 12.
- ↑ Az Unicode blog: A Unicode® szabvány 11.0-s verziójának bejelentése
- ↑ Unicode 11.0.0
- ↑ Az Unicode blog: A Unicode® szabvány 12.0-s verziójának bejelentése
- ↑ Unicode 12.0.0
- ↑ Az Unicode Blog: A Reiwa Era támogatására megjelent Unicode 12.1-es verzió
- ↑ Unicode 12.1.0
- ↑ A Unicode blog: Bejelentjük a Unicode szabvány 13.0-s verzióját
- ↑ Unicode 13.0.0
- ↑ Útiterv a TIP-hez (harmadlagos ideográfiai sík)
- ↑ Unicode karakterkódolási stabilitási szabályzat
- ↑ 1 2 GYIK – Emoji és Dingbats
- ↑ Útmutató a Unicode® hangulatjel-javaslatok benyújtásához
- ↑ Unicode normalizálás
- ↑ GitHub – FortAwesome/Font-Awesome: Az ikonikus SVG, betűtípus és CSS eszközkészlet
- ↑ Archivált másolat (a hivatkozás nem elérhető) . Letöltve: 2007. február 27. Az eredetiből archiválva : 2006. október 29.. (határozatlan) (Angol)
- ↑ Az Unicode kis- és nagybetű trükkös
- ↑ A legtöbb PC-betűtípus "nagybetűs" (majuscule) egyszóközű számokat valósít meg.
- ↑ Bizonyos esetekben egy dokumentum (nem egyszerű szöveg) Unicode-ban lényegesen kevesebb helyet foglalhat el, mint egy egybájtos kódolású dokumentum. Például, ha egy bizonyos weboldal megközelítőleg egyenlő arányban tartalmaz orosz és görög szöveget, akkor egybájtos kódolásban orosz vagy görög betűket kell írnia a dokumentumformátum lehetőségeivel, kódok formájában egy "és" jelet, amely karakterenként 6-7 bájtot vesz fel (tizedes kódok használatakor), azaz átlagosan 3,5-4 bájt lesz betűnként, míg az UTF-8 csak 2 bájtot vesz fel görög vagy orosz betűnként.
- ↑ Az egyik Arial Unicode font fájl 24 megabájtos; Van egy 120 megabájtos Times New Roman, amely 65536-hoz közeli karaktert tartalmaz.
Linkek
ISO szabványok |
---|
- Kategóriák: Kategória:ISO szabványok
- Kategória:OSI protokollok
|
1 -től 9999 -ig |
|
---|
10 000 és 19999 között |
|
---|
20000+ |
|
---|
Lásd még: Azon cikkek listája, amelyek címe "ISO"-val kezdődik |