A Unicode (ejtsd: [junikód]) a különböző írásrendszerek egységes kódolását és használatát leíró nemzetközi számítástechnikai iparági szabvány. A Unicode nemcsak a karakterkódolással, hanem a karakterek osztályozásával, megjelenítésével és használatával is részletesen foglalkozik. A Unicode 15.1-es kiadása 149 813 karakter helyét és szerepét rögzíti, amellyel 161 különböző eredetű modern és történelmi ábécét, valamint számos szimbólumkészletet fed le.[1]

A Unicode Consortium logója

A Unicode szabványt a Unicode Consortium gondozza. 2024 nyarán legutóbbi kiadása a 2023 szeptemberében megjelent Unicode 15.1. A Unicode-ot az ISO/IEC 10646 szabvánnyal együtt fejlesztik, és mindkettő azonos kódkiosztású karakterkészlettel rendelkezik.

A Unicode meghatározó szerepet játszik a szoftverek nemzetközivé tételében és honosításában. A szabványt az új technológiák, köztük a modern operációs rendszerek, az XML és a legtöbb modern programozási nyelv támogatja.

Történet

szerkesztés

A régi, legfeljebb csak néhány tucat előre rögzített betűt tartalmazó karakterkódolásokat a hardverfeltételek és az igények változásával fokozatosan felváltotta a Unicode, ami már nem szab korlátot a különböző jelek együttes használatának.

Kódtábla

szerkesztés

A Unicode szabvány 16 biten tárolt (legfeljebb 65 536 karaktert tartalmazó) síkokra osztja a Unicode kódpontokat. A 17 síkon összesen 1 114 112 kódpont található, amelyből a szabvány legutóbbi változata mintegy 144 ezer kódpontot foglalt le a karakterek számára. Az első, ún. „alapszintű többnyelvű sík” (BMP – Basic Multilingual Plane) mintegy 64 ezer karakterhelyén a legtöbb ma használatos jelet meg lehet találni.

A Unicode-szövegeket különböző karakterkódolással tárolhatjuk. A Unicode szabvány meghatározza az UTF-8, UTF-16 és az UTF-32 karakterkódolást, és számos más kódolás is használatban van. A leggyakrabban használt kódolások az UTF-8, UTF-16 és UCS-2, utóbbi az UTF-16 elődje.

A weboldalak és dokumentumok legelterjedtebb Unicode-karakterkódolása az UTF-8. Az UTF-8 változó hosszúságú kódolással (1–4[2] byte) képezi le a Unicode-karaktertáblát. 1 byte-on tárolt kódjai az ASCII-nak felelnek meg, így a latin betűs UTF-8 kódolású szövegek a régi ASCII környezetben is olvashatóak maradnak. Az UTF-8-ban kódolt latin betűs szövegek ugyanakkora vagy – ékezetes betűk használata esetén – csak kicsivel nagyobb helyet foglalnak el, mint a korábban elterjedt 8 bites karakterkészletek használatakor.

Az UCS-2 két byte-ot használ minden egyes karakterhez, de így csak az első 65 536 kódpont, az alapszintű többnyelvű sík érhető el vele, azaz az eddig definiált Unicode-karakterek kevesebb mint fele. Ezért az UCS-2 elavult, bár még mindig széles körben használják.

Az UTF-16 az UCS-2 kiterjesztése. Ugyanazt a 16 bites kódolást használja az alapszintű többnyelvű sík elérésére, és egy 4 byte-os kódolást a többi síkhoz. Ezért egy UCS-2 kódolású szöveg egyben UTF-16 kódolású Unicode-szöveg is.

Az UTF-32 (más néven UCS-4) 4 byte-ot használ minden karakterhez. Az UCS-2-höz hasonlóan minden karakter ugyanakkora helyet foglal el, megkönnyítve ezzel a karakterek indexelését, de ellentétben az UCS-2-vel, az UTF-32 képes minden Unicode-kódpontot kódolni. Mivel azonban az egyes karakterek négy byte-ot használnak, az UTF-32 jóval több helyet foglal el, mint a többi kódolás, és ezért csak ritkábban, meghatározott célra használják.

A Unicode használata

szerkesztés

Operációs rendszerek

szerkesztés

A mai Linux, Mac OS X és Windows operációs rendszerek alapértelmezett Unicode-támogatással rendelkeznek. A belső feldolgozás Unicode-alapú, a tárolás is legtöbbször, a megjelenítés pedig az operációs rendszer és alkalmazásainak képességétől, például a betűkészlet lefedettségétől függ.

Beviteli módszerek

szerkesztés

Mivel a billentyűkiosztásoknak nem lehet minden karakterhez egyszerű kombinációjuk, több operációs rendszer kínál alternatív beviteli lehetőségeket tetszőleges karakter elérésére.

Az ISO 14755 szabvány szabályozza a Unicode-karakterek bevitelének módszereit. Az alapmetódus szerint egy kezdőszekvencia után közvetlenül a hexadecimális kód megadása szükséges, majd ezt egy zárószekvencia követi. Ezenkívül specifikálták a képernyőről történő kiválasztást is, ahol a karakterek táblázatos formában szerepelnek a képernyőn, például egy karaktertábla-programban.

A Unicode támogatása már a HTML 4-ben megjelent az UTF-8 karakterkódolással. A ma használatos böngészőknek a magyar írásjelek (kezdő-záró „idézőjel”, gondolatjel) helyes megjelenítése sem okoz már gondot.

Érdekességek

szerkesztés

2015. júniusa óta a magyar rovásírás is része a 10C80–10CFF tartományban.[3]

Az öt leghosszabb karakter:

꧅: A jávai nyelv egyik betűje. Az egyik legmagasabb karakter is egyben.[4]

⸻: Sima hosszú vonal.

𒈙: Egy ékírásos karakter.[5]

𒐫: Szintén ékírás

﷽: Ez a karakter a biszmillah, amely a legszélesebb Unicode-karakter. Jelentése: „A Könyörületes és Irgalmas Isten nevében”.[6]

  1. https://www.unicode.org/versions/stats/charcountv15_1.html
  2. Az eredeti tervek szerint a maximális byte-szám 6, amelyet a végleges szabványban végül 4-re csökkentettek.
  3. Új szkriptek a Unicode 8.0-ban. (Hozzáférés: 2021. március 3.)
  4. r/Unicode - Widest/longest unicode characters list (amerikai angol nyelven). reddit. (Hozzáférés: 2020. szeptember 27.)
  5. 𒈙 - Unicode codepoint lookup/search tool. unicode.scarfboy.com. (Hozzáférés: 2020. szeptember 27.)
  6. Beszmeleh jelentése a Magyarországi Muszlimok Egyházának Iszlám lexikonja szerint

További információk

szerkesztés
  • Unicode.ORG – A Unicode szabványosító testület és a különböző Unicode szabványok honlapja (angolul)
  • DecodeUnicode – Unicode wiki, mintegy 100 ezer betűképpel (németül) (angolul)

Kapcsolódó szócikkek

szerkesztés