Unicode
Unicode |
---|
UCS |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/09/New_Unicode_logo.svg/100px-New_Unicode_logo.svg.png)
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 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.
Kódolás
[szerkesztés]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.
Web
[szerkesztés]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]
Jegyzetek
[szerkesztés]- ↑ https://www.unicode.org/versions/stats/charcountv15_1.html
- ↑ Az eredeti tervek szerint a maximális byte-szám 6, amelyet a végleges szabványban végül 4-re csökkentettek.
- ↑ Új szkriptek a Unicode 8.0-ban. (Hozzáférés: 2021. március 3.)
- ↑ r/Unicode - Widest/longest unicode characters list (amerikai angol nyelven). reddit. (Hozzáférés: 2020. szeptember 27.)
- ↑ 𒈙 - Unicode codepoint lookup/search tool. unicode.scarfboy.com. (Hozzáférés: 2020. szeptember 27.)
- ↑ Beszmeleh jelentése a Magyarországi Muszlimok Egyházának Iszlám lexikonja szerint
Források
[szerkesztés]- Unicode, UTF-8 (magyar nyelven). BME. (Hozzáférés: 2015. szeptember 1.)
- UTF-8, a transformation format of ISO 10646 (RFC3629) (angol nyelven), 2003. november 1. (Hozzáférés: 2015. szeptember 1.)
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)