# Unikodas

**Unikodas** (angl. *Unicode*) – standartas, apibrėžiantis beveik visų kalbų abėcėlių bei papildomų rašto ženklų kodavimą kompiuteriuose.

Unikodas sukurtas siekiant pakeisti anksčiau naudotas įvairias ribotas simbolių koduotes. Pirmoji standarto versija (1.0) sukurta 1995 metais, nuo tada standartas beveik kasmet atnaujinamas – 2022 metais išleista jau 15.0.0 jo versija. Šiuo metu Unikodas yra dominuojantis standartas pritaikant kompiuterines programas daugeliui kalbų. Unikodo palaikymas numatytas moderniuose standartuose (kaip XML), programavimo kalbose bei operacinėse sistemose. Šiuo metu standartas suteikia galimybę aprašyti iki 1112064 ženklų, o aprašo 149186 ženklus.

Unikode kiekviena pozicija atitinka tik vieną konkretų ženklą, tačiau kai kuriais atvejais vienam ženklui skiriama keletas pozicijų. Pirmosios 256 pozicijos yra identiškos ISO 8859-1 koduotės ženklams, kad būtų paprastesnis keitimas iš egzistuojančių Vakarų Europos kalbų tekstų. Unikodo standarte numatyti ne tik raidės ir simboliai, bet ir pagalbiniai kodai nusakyti simbolio savybėms, teksto krypčiai bei kitoms reikmėms.

Unikode numatyta kombinacinių sekų galimybė, kai vienas vaizduojamas simbolis koduojamas dviejų ar daugiau kodų seka. Kai kurios raidės su diakritiniais ženklais gali būti užrašomos ir vienu kodu. Pavyzdžiui, kirčiuotoji raidė **a**(á) gali būti užrašoma tiek vienu Unikodo kodu (U+0301), tiek dviejų seka (U+0061, U+0301). Standarto požiūriu, abiem šiais būdais užrašyta informacija laikoma lygiaverte.

Toliau plėtojant standartą, laikomasi nuostatos nesuteikti atskirų kodų ženklams, kurie gali būti užrašyti kombinacinėmis sekomis. Siekiant supaprastinti darbą su dažniau pasitaikančiomis kombinacinėmis sekomis (pavyzdžiui, tokių duomenų perkodavimą iš kitų koduočių ar į jas), 2005-aisiais metais (4.1 versijoje) standarte įvesta vardinių sekų (*named character sequences*) sąvoka.

## Apimtis

Unikodas apima beveik visas šiuo metu naudojamas rašto sistemas. Kai kurios jų:

|  |  |  |
| --- | --- | --- |
| * Arabų
* Armėnų
* Bengalų
* Brailio raštas
* Kanados aborigenų silabika
* Čerokių
* Koptų
* Kirilica
* Devanagari
* Etiopų
* Gruzinų
 | * Graikų
* Gudžarati
* Gurmukhi
* Hangul (Korėjiečių)
* Kinų (Kanji, Hanja, Hanzi)
* Japonų (Kanji, Hiragana, Katakana)
* Hebrajų
* Khmerų (Kambodža)
* Kanadų
* Lao
* Lotynų
 | * Malajalamo
* Mongolų
* Mjanmų
* Orijų
* Sirų
* Tamilų
* Tajų
* Tibetiečių
* I
* Džuin (Bopomofo)
 |

Taip pat Unikode pridėti ir nemažai papildomų simbolių, istorinių bei išnykusių rašto sistemų (Egiptiečių bei Majų hieroglifai, Šumerų dantiraštis, Senovės graikų, Finikiečių abėcėlės, runos ir kt.).

Be to, naudojami ir matematiniai bei muzikiniai simboliai, numatytos vietos ateityje pridedamoms rašto sistemoms bei asmeniniam naudojimui.

## Darbas su Unikodu

Pats Unikodo standartas tik numato konkrečias koduojamų ženklų aibę ir vienareikšmes jų pozicijas, bet ne realų jų kodavimą fizinėje atmintyje. Yra sukurta keletas Unikodo koduočių, kurių vienos pritaikytos taupesniam saugojimui, kitos – suderinamumui su senomis koduotėmis ar sistemomis. Štai dalis jų:

* UTF-7 – pasenusia laikoma ir retai naudojama 7 bitų koduotė
* UTF-8 – 8 bitų kintamo ilgio koduotė
* UCS-2 – 16 bitų fiksuoto ilgio koduotė, palaikanti tik pirmąsias 65535 Unikodo pozicijas
* UTF-16 – 16 bitų kintamo ilgio koduotė
* UCS-4 ir UTF-32 – identiškos 32 bitų fiksuoto ilgio koduotės
* GB18030 – 8 bitų kintamo ilgio koduotė, oficialus Kinijos standartas, optimizuotas tekstams, kuriuose daugiausia naudojami ASCII ir kinų rašto ženklai
* UTF-EBCDIC – retai naudojama 8 bitų kintamo ilgio koduotė, panaši į UTF-8, bet sukurta EBCDIC sistemoms

UTF-32 ir UCS-4 koduotės yra netaupios, bet labai paprastos – jomis galima užkoduoti bet kurį Unikodo simbolį kiekvienam skiriant 32 bitus. UTF-8 koduotėje vienam ženklui naudojama nuo 1 iki 4 baitų, ji yra suderinama su ASCII bei yra labai taupi, jei ja koduojamame tekste naudojami daugiausia lotynų abėcėlės pagrindo rašmenys.

## Kritika

Į Unikodą nėra įtrauktos 35 (iš 68) lietuviškos kirčiuotos raidės. Šias raides tenka koduoti vardinėmis kombinacinėmis sekomis.

Unikodo kritikų (daugiausiai Japonijoje) požiūriu, standartas per daug supaprastina azijietiškas rašto sistemas, nepalaiko senesnių ar alternatyvių kandži simbolių. Taip pat yra teigiančių, kad Unikodas palaiko per mažai simbolių. Kritikuota ir nelogiška Thai simbolių eilės tvarka.

Standarto 2.0 versijoje pradinė 65535 galimų užkoduoti ženklų aibė padidinta iki 1112064, pridėta papildomų azijietiškų rašto ženklų, todėl dalis pradinės kritikos jau nėra aktuali.

## Išnašos