LIETUVIŠKI  RAŠMENYS  IR
KODŲ  LENTELĖS

Gintautas  Grigas

Šio straipsnio tikslas dvejopas: pirma, supažindinti skaitytoją su teksto simbolių kodavimo kompiuteryje būdais bei jų raida, didžiausią dėmesį skiriant 8 bitų kodams, naudojamiems šiuolaikiniuose kompiuteriuose, ir antra, pateikti kodų lenteles, turinčias lietuviškus rašto ženklus, kad skaitytojas turėtų faktinę informaciją apie jas ir galėtų praktiškai pasinaudoti kodų lentelėmis bei suvokti, kodėl vienaip ar kitaip simboliai yra koduojami.
 

Kiek bitų skiriama vienam simboliui

Esame įpratę, kad vienam simboliui skiriamas vienas baitas, t. y. 8 bitai. Tokia šiuolaikinių kompiuterių realybė. O mūsų tėvų ir senelių kompiuteriuose buvo stengiamasi simbolį įsprausti į mažesnį bitų skaičių, nes tada kompiuterio atmintinė buvo daug brangesnė ir reikėjo ją taupyti. Dabar pradeda nebepakakti simboliui ir viso baito, o ateityje numatoma skirti du ir net keturis.

1 pav. Kiek bitų reikia vienam simboliui?

Sunku rasti ribą, kada įsigalėjo vienoks ar kitoks bitų, skiriamų vienam simboliui, skaičius. Šiuo metu dominuoja 8 bitų kodų lentelės, tačiau dar pasitaiko 6 ar 7 bitų kodavimo reliktų. Antra vertus, jau pradedamas naudoti 16 bitų kodavimas (Unikodas).

Šešiais bitais galima užkoduoti 26 = 64 simbolius. Tai nedaug – turi tilpti raidės, skaitmenys, skyrybos ženklai. Todėl tenka pasitenkinti vien tik didžiosiomis arba vien tik mažosiomis raidėmis.

Kompiuterių su 6 bitų kodavimu galima rasti tik muziejuose, tačiau tokio kodavimo reliktų dar galima rasti programinėje įrangoje. Mažųjų ir didžiųjų raidžių sutapatinimas bylų ir katalogų varduose, o taip pat ankstesnių programavimo kalbų konstrukcijose (baziniuose žodžiuose bei varduose) mena tuos laikus, kai buvo koduojama 6 bitais.

Septyniais bitais galima užkoduoti 27 = 128 simbolius. Labiausiai paplitusi septynbitė kodų lentelė ASCII (angl. American Stadard Code for Information Interchange – Standartinis JAV informacijos mainų kodas), kuri buvo sukurta siekiant suvienodinti simbolių kodavimą duomenų apdorojimo bei perdavimo sistemose. Ši kodų lentelė pavaizduota 2 paveiksle. Paveiksle kiekvienam kodui (simboliui) skiriamas vienas langelis. Langelio apačioje mažais skaičiais užrašytas dešimtainis simbolio kodas. Šešioliktainę simbolio kodo reikšmę galima gauti sudėjus langelio, kuriame įrašytas tas simbolis, koordinates, t. y. stulpelio ir eilutės numerius (jie čia užrašyti šešioliktainiais skaičiais). Pavyzdžiui, raidės N (dešimtainis kodas 78) šešioliktainis kodas yra 40 + 0E = 4E.

Oficialiuose dokumentuose (pavyzdžiui, standartuose) kodus priimta dėstyti stulpeliais (pirmame stulpelyje pirmieji simboliai). Šiame straipsnyje juos dėstysime eilutėmis, nes toks dėstymas geriau dera prie leidinio puslapio formato, be to, ir skaityti lengviau iš kairės į dešinę negu iš viršaus į apačią.

Simbolių šešioliktainius kodus kompiuteryje galima pamatyti su tekstų žiūrikliais (peržiūros programomis). „Norton Commander“ programoje jis iškviečiamas pastačius žymeklį ant skaitomos bylos ir paspaudus

2 pav. ASCII kodų lentelė

klavišus F3, po to F4. „Windows Commander“ programoje – paspaudus klavišą F3, po to pelės kairiuoju klavišu paspaudus mygtuką „Parinktys“ ir pasirodžiusiame meniu pasirinkus „Šešioliktainis“.

Pirmieji 32 kodai yra valdantieji. Pavyzdžiui, kodą 10 spausdintuvas ar vaizduoklis (monitorius) supranta kaip komandą spausdinimo galvutę (ar žymeklį) perkelti į eilutės pradžią. Kodas 14 yra komanda galvutę (ar žymeklį) perkelti į naują eilutę.

Kai šešioliktainius kodus stebime naudodami programą „Norton Commander“, tai ekrane matome ir tam tikrus valdančiųjų kodų vaizdus, tačiau šie vaizdai nėra teksto simboliai. Juos galima laikyti sutartiniais valdymo kodų žymenimis, kad tuos kodus galėtume atskirti vieną nuo kito.

ASCII lentelėje yra ne tik didžiosios, bet ir mažosios raidės. Deja, tik angliškos. Angliškai kalbantiems amerikiečiams to pakanka, todėl ši kodavimo lentelė, ir, apskritai, 7 bitų kodavimas JAV populiarus iki dabar. O kitų kalbų raidėms šioje kodų lentelėje vietos nėra.

3 pav. EBCDIC kodų lentelė

Valstybėse, kurių kalbos turi nedaug raidžių, besiskiriančių nuo angliškų, įtrauktų į ASCII lentelę, ši lentelė buvo koreguojama – savos kalbos raidėmis pakeičiami kai kurie mažiau reikalingi simboliai (pavyzdžiui: {, [, ], }, \). Tačiau tokie kodavimai nesulaukė didesnio pasisekimo. Mat daugiausia kompiuterių ir jų programinės įrangos pagaminama JAV, taigi joje gali būti panaudoti ir visi ASCII simboliai. Dalį jų pakeitus kitais, gali atsirasti situacijų, nesuderinamų su įranga, pritaikyta ASCII kodui.

Rimtesnių darbų, susijusių su lietuviškomis 6 arba 7 bitų kodų lentelėmis arba tokių lentelių standartizavimu, neteko matyti. Tuo metu, kai tokie kodavimai dominavo kompiuteriuose, Lietuva dar priklausė Sovietų Sąjungai, kur buvo reikalaujama vartoti rusiškas kodų lenteles.

Aštuoniais bitais galima užkoduoti 28 = 256 simbolius, t. y. dvigubai daugiau negu septyniais. Papildomų 128 kodų pakanka keleto kalbų raidėms bei kitiems reikalingesniems simboliams.

Aštuonių bitų kodavimo lentelės dar septintajame dešimtmetyje buvo pradėtos naudoti dideliuose kompiuteriuose. Tai buvo EBCDIC (angl. Extended Binary Code Decimal Interchange Code – Išplėstasis dvejetainis kodas ir dešimtainis informacijos mainų kodas) tipo kodų lentelės. Buvo sudarytos kelios šio kodo lentelės. Lentelė, turinti lietuviškas raides, pateikta 3 paveiksle. Čia yra ir latviškos raidės (ši kodų lentelė apibrėžta Latvijos standarte RST 0040-90).

Mikrokompiuterių gamybos pradininkai buvo amerikiečiai. O jiems pakanka 7 bitų kodų lentelės, todėl šiuose kompiuteriuose prigijo ASCII kodų lentelės. Tačiau kompiuteriai greitai išplito ir už JAV ribų. O čia reikėjo 8 bitų kodavimo.

Nuo 1981 m. IBM firma pradėjo gaminti IBM PC kompiuterius su 8 bitų kodų lentele IBM 437 (4 pav.). Tai buvo ASCII kodų lentelė, papildyta stambesnių Europos valstybių kalbų – prancūzų, ispanų, vokiečių ir kt. – raidėmis, specialiais, daugiausia matematiniais, ženklais bei pseudografikos simboliais. Kad išliktų suderinamumas su 7 bitų ASCII lentele, visa ASCII lentelė įtraukiama į 8 bitų lenteles, t. y. pirmoji 8 bitų lentelės pusė (kodai 0–127) sutampa su ASCII kodais, todėl kodų lentelė 437 dar vadinama išplėstąja ASCII kodų lentele.

4 pav. IBM 437 kodų lentelė.
Pirmieji 128 simboliai sutampa su ASCII lentelės simboliais

Nors 8 bitais galima užkoduoti daug simbolių, tačiau ir jų nepakanka, kad vienoje lentelėje tilptų visų kalbų, netgi tų, kurių abėcėlės pagrindas yra lotyniškoji abėcėlė, rašto ženklai. Taigi teko sudaryti keletą kodų lentelių, skirtų atskiroms kalboms ar jų grupėms. Kalbos buvo grupuojamos pagal abėcėlių panašumą, geografinę kaimynystę bei bendradarbiavimo poreikį.

Visų toliau nagrinėjamų kodų lentelių pirmosios pusės simboliai (kodai 0–127) sutampa su ASCII simboliais.

Abėcėlių skirtumai yra objektyvūs faktoriai, lemią kodų lentelių įvairovę. Kodavimo įvairovę dar padidina skirtingi firmų, gaminančių programinę įrangą (operacines sistemas), požiūriai į kodavimą, dėl to simbolių kodavimas DOS, „Windows“ ir „OS Mac“ operacinėse sistemose yra skirtingas.

Šiuo metu naudojamos beveik vien 8 bitų kodų lentelės, tad apie jas pakalbėsime plačiau, atskirai aptardami įvairias operacines sistemas bei standartų grupes.
 

Operacinė sistema DOS

Pirmoji greitai paplitusių IBM PC genties kompiuterių operacinė sistema buvo DOS.

Tai buvo pirmoji operacinė sistema, skatinusi kurti bei norminti kodavimo lenteles, turinčias lietuviškus rašto ženklus. Buvo sukurtos kelios skirtingos kodų lentelės. Aptarsime jas. Kadangi šiame skyriuje kalbėsime tik apie operacinės sistemos DOS kodų lenteles, tai jas vadinsime šioje sistemoje priimtais vardais – kodų lentelių numeriais.

770 lentelė. 1989 m. buvo priimtas pirmasis standartas – lentelė 770, dar vadinama „IBM Baltic“ [2]. Standartą parengė Virginijus Dadurkevičius, Danielius Ralys, Julius Sruogis ir Rimas Voldemaras konsultuodamiesi su latviais ir estais. Pateiksime principus, kuriais buvo vadovautasi, kuriant šį standartą [7].

1. Lentele turi būti galima naudotis kuo didesnėje teritorijoje. Vienintelė teritorija, kurioje tuo metu dar nebuvo sunorminti nacionalinių ženklų kodai, buvo Baltijos šalys, todėl manyta, jog šiuo standartu naudosis Lietuva, Latvija ir Estija.

2. Lentelėje, lyginant su IBM 437 lentele, tose pačiose pozicijose turi išlikti tie ženklai, kurie dažnai naudojami programuojant pseudografiką arba populiarūs spausdinant dalykinius raštus ar mokslinius straipsnius.

3. Lietuviškas, latviškas ar estiškas tekstas turi būti nesunkiai skaitomas, kai naudojamasi ir neperdirbtais spausdintuvais ar vaizduokliais, suderintais su IBM 437 standartu – vadinasi, Baltijos šalių raidės, kiek įmanoma, turi būti ten, kur IBM 437 lentelėje panašūs ženklai.

4. Pasauliniame moksle ir technikoje vis tvirtesnes pozicijas užima Vokietija. Įvertinus perspektyvas, tikslinga neliesti vokiečių kalbos simbolių, esančių 4 pav. eilutėse, pažymėtose skaičiais 80 ir 90, juo labiau, kad dalis šių simbolių naudojama ir estų kalboje.

5 pav. 770 kodų lentelė

5 paveiksle parodyta tik antroji 770 lentelės pusė (kodai 128–255), nes visi pirmosios pusės kodų (0–127) simboliai sutampa su ASCII lentele (žr. 2 pav.).

Antrosios lentelės pusės pagrindu buvo pasirinkta 437 kodų lentelė. Lietuviškoms, latviškoms ir estiškoms raidėms buvo skiriamos vietos, kur buvo kitų kalbų, išskyrus vokiečių, raidės. Dėl to kodų lentelėje išliko specialieji 437 lentelės simboliai, taigi ir galimybė korektiškai dirbti su programomis, naudojančiomis tuos simbolius. O tai labai svarbu, kadangi užsieninėse programose specialieji simboliai vienaip ar kitaip panaudojami ir interpretuojami pagal jų 437 kodų lentelėje numatytą prasmę. Todėl nesklandumų naudojant universalios paskirties užsieninę programinę įrangą (operacinių sistemų apvalkalus, tekstų redaktorius, pašto programas ir pan.) bei mokymo programas pasitaikydavo retai. Šio straipsnio autoriui teko pastebėti tik du klaidingus atvejus: pirma, laiškuose, persiunčiamuose „Fidonet“ tinklu, dingsta raidė į, antra, jeigu raidė Ą yra pavartota katalogo varde, tai tokio katalogo negali atidaryti „Norton Commander“ programa. Abu atvejus reikia laikyti minėtų programų klaidomis. Antroji klaida („Norton Commander“ penktojoje versijoje) jau ištaisyta. Būtų naivu manyti, kad minėtos programos autoriai išnagrinėjo lietuvišką kodavimo lentelę ir ištaisė klaidą savo programoje. Labiau tikėtina, kad klaidą pastebėjo ir paprašė ištaisyti kas nors iš kitos valstybės, nes lietuviška raidė Ą patenka į nacionalinių simbolių vietą, kur tą patį kodą ir analogišku tikslu naudoja ir kitos valstybės.

Pastebėsime, kad naujas simbolis yra ir lietuviškos atidarančios kabutės (kodas 157). Kadangi tų laikų adatinių spausdintuvų raiška buvo nelabai didelė, tai uždarančių kabučių funkcijas galėjo atlikti ASCII lentelės stačios kabutės (kodas 34).

Tai buvo pirmasis ir profesionaliai sukurtas lietuviškų rašmenų kodavimo standartas. Šį darbą autoriai yra aprašę ataskaitoje „Lietuviški rašmenys kompiuteryje“, kuri, deja, nebuvo paskelbta.

771 lentelė. Ši kodų lentelė dar vadinama „Kbl“. Ją sudarė Vidmantas Balčytis. Tai rusiška-lietuviška kodų lentelė (6 pav.). Žodį „rusiška“ parašėme pradžioje dėl to, kad parenkant raidėms kodus rusiškoms raidėms buvo teikiama pirmenybė. Jos išdėstytos tose pačiose vietose kaip ir Rusijoje naudojamoje kirilicos kodų lentelėje 866. Rusiškų raidžių yra 32. Jos užima visas vietas, kurias įprasta skirti nacionalinėms raidėms.

6 pav. 771 kodų lentelė

Devynias specifines lietuviškas raides teko išdėstyti vietoj pseudografikos bei matematinių ženklų, kurie vartojami IBM kompiuterių „gimtojoje“ ir visame pasaulyje paplitusioje 437 kodų lentelėje:

Dėl tokio lietuviškų raidžių išdėstymo kompiuterio naudotojas susidurdavo su daugybe nesklandumų. Paminėsime keletą iš jų.

Užsieninėse matematikos mokymo programose įprasta vartoti matematinius ženklus:

Kai tokios programos naudojamos Lietuvoje, vietoj šių ženklų matomos lietuviškos raidės.

Dėl tos pačios priežasties programose negalima vartoti pseudografikos ženklų:

Užsieninių programų naudotojai šį trūkumą jautė nuolat, nes jose šie ženklai dažnai vartojami ir kompiuterio ekrane virsta lietuviškomis raidėmis. Pateiksime porą pavyzdžių. „Norton Comander“ programa, kai įjungtam kompiuteriui ilgiau neduodama darbo, vietoj mirksinčių žvaigždžių ima rodyti lietuviškas raides Ų ir ų. Redagavimo programa „Word5“, pasirinkus visų simbolių rodymo režimą, tarpus pakeičia taškais „·“. Bet vietoj šio taško 771 kodų lentelėje yra raidė Ū. Todėl, pavyzdžiui, vietoj eilutės:

MŪSŲ  IR   JŪSŲ  ŽEMĖ

matoma eilutė:

MŪSŲŪIRŪJŪSŲŪŽEMĖ

Pseudografikos simboliams virstant raidėmis iškreipiamas tekstų konvertavimas. Pavyzdžiui, kai tekstų redaktorius „Word5“ dokumentą rašo į tekstinę bylą, išsaugodamas teksto skirstymą į eilutes, raidės ą, č, Ą, Č virsta pliuso ženklais +.

Nepaisant to, kad ši kodų lentelė turėjo tiek daug trūkumų ir nėra standartinė, t. y. jos neapibrėžia Lietuvos valstybiniai standartai, ji Lietuvoje paplito labiausiai, nes kompiuteriais prekiaujančios firmos ją dėjo į kompiuterius.

772 lentelė taip pat rusiška-lietuviška ir buvo priimta kaip Lietuvos standartas LST 1284:1993 [5]. Šioje lentelėje (7 pav.) išsaugotas toks pats rusiškų raidžių išdėstymas kaip ir rusiškoje kodų lentelėje 866 (arba lietuviškoje 771), o specifinėms lietuviškoms raidėms skiriamos pseudografikos ženklų vietos:


 
 

7 pav. 772 kodų lentelė

Lietuviškos raidės atsiranda kompiuterinės grafikos paveikslėliuose vietoj aukščiau išvardytų pseudografikos simbolių. Tai simboliai, vaizduojantys viengubų ir dvigubų linijų sankirtas. Todėl, pavyzdžiui, vietoj lentelės

Redaktorius „MS Word 5.0“, perrašydamas dokumentą tekstiniu formatu, visas specifines lietuviškas raides pakeičia kitais ženklais.

Ši kodų lentelė lyginant ją su anksčiau minėtomis turi ir privalumų. Joje yra abiejų lietuviškų kabučių simboliai „ ir “. Paaukojus vien tik skirtingo storio linijų sankirtų simbolius, išlieka kiti pseudografikos bei matematikos ženklai.

774 lentelės (8 pav.) lietuviškų raidžių kodai yra tokie patys kaip ir 772 lentelės. Tiktai vietoj rusiškų raidžių yra pateiktas įvairių Europos kalbų raidžių rinkinys. Todėl viskas, kas buvo pasakyta apie 772 lentelės lietuviškų raidžių „konfliktavimą“ su pseudografikos simboliais, tinka ir šiai kodų lentelei. Ši lentelė taip pat yra apibrėžta Lietuvos standarte [4].

8 pav. 774 kodų lentelė

775 lentelės (9 pav.) lietuviškų raidžių kodai taip pat sutampa su 772 lentelės kodais. Tiktai vietoj rusiškų raidžių yra kitų Baltijos valstybių raidžių kodai. Ją vartoja firma „Microsoft“ operacinėje sistemoje MS DOS, pateikiamoje kartu su operacine sistema „Windows 95“.

Ši lentelė turi tokių pačių trūkumų, susijusių su pseudografikos simboliais, kaip ir 772 arba 774 lentelės. Jos privalumas – latviškos ir estiškos raidės. Šių kalbų raides turi ir „Windows“ terpės kodų lentelė 1257 (apie ją kalbėsime toliau). Kadangi abi kodų lentelės (775 ir 1257) yra daugiausia bendraujančiose terpėse (DOS ir „Windows“), tai logiška, kad abiejų kodų lentelių simbolių aibės turėtų kuo daugiau tų pačių ženklų. Kadangi operacinė sistema DOS, būdama „Windows“ terpėje, vaidina tik pagalbinį vaidmenį (ja vis mažiau naudojamasi), tai kodų lentelės 775 trūkumai darosi mažiau pastebimi. Manoma, kad ji taps standartu de fakto.

9 pav. 775 kodų lentelė

Taigi DOS terpėje sukurta nemažai kodų lentelių su lietuviškais rašto ženklais. Tačiau jų sunorminti, kai DOS buvo intensyviai naudojamas, taip ir nepavyko.
 

ISO/IEC 8859 standartai

Dauguma Europos kalbų vartoja lotynišką abėcėlę su kai kurių raidžių modifikacijomis. Dažniausiai prie pagrindinių lotyniškos abėcėlės raidžių pridedami diakritiniai ženklai. Tokių raidžių yra tiek daug, kad jos visos netelpa į vieną kodų lentelę. Todėl sudaromi simbolių rinkiniai, kurie vadinami Latin1, Latin2 ir t. t. Kiekvienam jų sudaroma atskira kodų lentelė. Simbolių rinkiniai bei jų kodų lentelės standartizuojami. Standartų yra įvairių lygių: nacionalinių, regioninių (pavyzdžiui, Europos), tarptautinių. Aukščiausią statusą turi tarptautiniai standartai. Juos tvirtina Tarptautinė standartų organizacija ISO (angl. International Standard Organization). Daugelis kodų lentelių yra patvirtintos ir kaip tarptautiniai standartai. Tarptautiniai standartai gali sutapti ir su nacionaliniais. Pavyzdžiui, 7 bitų kodų lentelės tarptautinis standartas ISO 646 sutampa su JAV nacionaliniu standartu ASCII.

Devintajame dešimtmetyje buvo pradėtas kurti tarptautinių standartų rinkinys – ISO/IEC 8859 standartai. Tai bendras dviejų organizacijų ISO ir IEC (angl. International Electrotechnical Commision – Tarptautinė elektrotechnikos komisija) darbo rezultatas, todėl oficialiuose standartų pavadinimuose minimos abi organizacijos. Tačiau santrumpa IEC dažnai praleidžiama ir rašoma trumpiau: ISO 8859.

Tai labiausiai žinomas ir naudojamas standartų rinkinys. Pirmoji jo kodų lentelė ISO 8859–1 (10 pav.) buvo sudaryta 1987 m. ir skirta Vakarų Europos tautų kalboms: airių, anglų, danų, islandų, ispanų, italų, norvegų, olandų, portugalų, suomių, švedų, vokiečių ir kt. Šių kalbų simbolių rinkinys buvo jau anksčiau sunormintas ir vadinamas Latin1.

10 pav. Vakarų Europai skirta ISO 8859–1 kodų lentelė

Tais pačiais metais sudaryta antroji kodų lentelė ISO 8859–2 (11 pav.), skirta Vidurio Europos kalboms: čekų, kroatų, lenkų, rumunų, serbokroatų, slovakų, slovėnų ir vengrų. Tai Latin2 simbolių rinkinys.

11 pav. Vidurio Europai skirta ISO 8859–2 kodų lentelė

Toliau standartų rinkinys buvo papildomas naujomis kodų lentelėmis su kitų kalbų (esperanto, turkų, lietuvių, latvių ir kt.) rašto ženklais, su kitaip sugrupuotomis kalbomis, su kitų abėcėlių rašmenimis (kirilicos, graikų, hebrajų, arabų ir kt.). Dabar jau yra 15 šio standarto kodų lentelių.

Lietuviškos raidės yra trijose šio standarto kodų lentelėse: ISO 8859–4, ISO 8859–10 ir ISO 8859–13.

Lentelė ISO 8859–4 (12 pav.) – tai simbolių rinkinys, vadinamas Latin4, skirtas Šiaurės Europos šalims. Ja stengtasi aprėpti visą Šiaurės regioną įtraukiant ir Baltijos valstybes. O šių kalbų abėcėlės yra turtingos, todėl į lentelę teko įtraukti daug raidžių ir mažai vietos beliko kitiems rašto (skyrybos) simboliams. Dėl to ši lentelė nepaplito nei Skandinavijoje, nei Baltijos valstybėse. Skandinavai naudoja kodų lentelę ISO 8859–1, nes joje daugiau Vakarų Europos kalbų raidžių, kurios jiems dažniau reikalingos.

12 pav. Šiaurės Europos ir Baltijos šalims skirta ISO 8859–4 kodų lentelė

Tarptautinis standartas ISO 8859–4 buvo priimtas 1988 m. Po metų ši kodų lentelė buvo įteisinta Lietuvos standarte RST 1093–89 [1]. Kad lentelė turėtų lietuviškas kabutes, standarte buvo pasakyta, kad simbolį, kurio kodas yra 184, leidžiama keisti lietuviškomis atidarančiomis kabutėmis. Šios kodų lentelės Lietuvos standartas galiojo iki 1992 m., kol nebuvo pakeistas nauju standartu.

1992 m. bendromis Lietuvos ir Latvijos specialistų pastangomis buvo sudaryta kodų lentelė „Baltic Rim“ [3]. Ją projektavo Virginijus Dadurkevičius, Evaldas Kulbokas, Imants Mētra, Edmundas Mišeikis, Algimantas Oškinis, Danielius Ralys. Abi valstybės ją priėmė kaip nacionalinius standartus (LST 1282:1993 ir LVS 8–92) ir pateikė ISO. 1998 m. jis buvo priimtas ir pavadintas ISO 8859–13 (13 pav.).

13 pav. Baltijos šalims skirta ISO 8859–13 kodų lentelė

Šioje kodų lentelėje yra anglų, danų, estų, latvių, lenkų, lietuvių, norvegų, suomių, švedų ir vokiečių raidės. Latvija ir iš dalies Estija (Estijoje dabar priimtas kitas kodų standartas) naudoja tą pačią kodų lentelę ISO 8859–13. Didžiojoje Britanijoje, Norvegijoje, Suomijoje, Švedijoje ir Vokietijoje naudojama kodų lentelė ISO 8859–1, o šių valstybių kalbų raidžių kodai sutampa su mūsiškės ISO 8859–13 kodais. Taigi ja naudodamiesi galime rašyti ne tik lietuviškai.

Kodų lentelėse ISO 8859–1 (naudojamoje Danijoje) ir ISO 8859–13 yra daniškos raidės, tačiau jų kodai skiriasi. Tas pats pasakytina ir apie lenkiškas raides, esančias Lenkijoje naudojamoje kodų lentelėje ISO 8859–2 ir lietuviškoje ISO 8859–13. Todėl naudodamiesi lentele ISO 8859–13 galime rašyti daniškai ir lenkiškai, tačiau siunčiant tekstus į šias valstybes derėtų juos perkoduoti į tose valstybėse naudojamas kodų lenteles.

Kodų lentelė ISO 8859–10 (14 pav.) buvo sudaryta samiams (lapiams), gyvenantiems Skandinavijos šiaurėje. Į jų kodų lentelę buvo įtrauktos ir kaimyninių šalių – Skandinavijos bei Baltijos valstybių – abėcėlės. Taigi samiai pasirinko mūsų abėcėlės raides, laiko mus kaimynais, su kuriais verta bendrauti: juk kasmet iš Laplandijos į Lietuvą atvyksta Kalėdų Senelis...

14 pav. Skandinavijos šiaurėje gyvenančioms tautoms skirta
kodų lentelė ISO 8859–10

Apie kaimynus buvo galvojama sudarant ir kitas kodų lenteles. Jau minėjome, kad Baltijos šalių kodų lentelėje ISO 8859–13 yra ir lenkiškos raidės. Tačiau lenkai naudojasi Vidurio Europos kodų lentele ISO 8859–2, kurioje lenkiškų raidžių kodai yra kiti. Dauguma lenkų net neįtaria, kad jų raidės yra ir mūsų kodų lentelėje, o dauguma lietuvių – kad visų lietuviškų raidžių esama Laplandijos kodų lentelėje.

Taigi iš tiesų turime tik vieną tikrai mums tinkantį standartą ISO 8859–13. Nors kartais iš užsienio gauname programų, kur lietuvių kalba siejama su kodų lentele ISO 8859–4. Mat ši kodų lentelė buvo priimta dar 1988 metais, o standartas ISO 8859–13 tik 1998 m., nors tarptautinei specialistų visuomenei jis žinomas jau seniai.

ISO 8859 rinkinio kodų lentelės vartojamos UNIX terpėje, o taip pat „Internete“ bei elektroniniame pašte. Jų pagrindu sudarytos ir „Windows“ terpės kodų lentelės.
 

„Windows 95“ operacinė sistema

Šios genties operacinėse sistemose naudojamos „Microsoft“ firmos kodų lentelės, skirtos Europai, numeruojamos nuo 1250 iki 1257 ir sudarytos šiek tiek modifikavus ISO 8859 lenteles. Pavyzdžiui, 1250 kodų lentelė atitinka ISO 8859–2 lentelę, 1252 kodų lentelė – ISO 8859–1 lentelę ir panašiai.

ISO 8859 lentelėse yra neišnaudoti 32 kodai (128–159): čia pateiktuose kodų lentelių paveiksluose dvi eilutės, pažymėtos skaičiais 80 ir 90, yra tuščios. ASCII lentelėje pirmieji 32 kodai yra skirti valdymui. Tarptautinė standartų organizacija nutarė analogiškai pasielgti ir su pirmaisiais antrosios lentelės pusės kodais – juos palikti valdymo reikalams. Kita, svaresnė, priežastis – palikti šias eilutes tuščias, kad išliktų suderinamumas su sena įranga, ypač telekomunikacijų įranga, pripažįstančia tik 7 bitų kodavimą. Kai į tokią įrangą patenka 8 bitų kodas, tai ji sugeba priimti tik pirmuosius 7 bitus. Aštuntasis bitas dingsta ir kodas virsta ASCII kodu sumažėdamas dešimtainiu skaičiumi 128 (arba šešioliktainiu F0). Jeigu originalaus simbolio kodas yra iš intervalo 160–255, tai jis virsta kitu teksto simboliu. Duomenys sugadinami. Tačiau įrangai tokia klaida nekenkia: jai nesvarbu persiunčiamų tekstų turinys. Tačiau, kai teksto simbolis virsta valdančiuoju kodu, tai jis suprantamas kaip komanda. Savaime aišku, kad tokia komanda yra neteisinga ir todėl gali sutrikdyti įrangos darbą.

„Microsoft“ firma Europai skirtoje operacinėje sistemoje „Windows 95PE“ pateikė aštuonias kodų lenteles: nuo 1250 iki 1257 imtinai. Jos visos sudarytos iš ISO 8859 lentelių, bet rašto ženklams jose išnaudotos ir rezervuotos pozicijos. Čia sudėti įvairūs specialieji simboliai.

Vakarų Europai yra sudaryta 1252 kodų lentelė. Į ją perkelta visa ISO 8859–1 kodų lentelė, o rezervuoti kodai (128–159) paskirti naujiems specialiems simboliams (15 pav.).

15 pav. Vakarų Europai skirtos 1252 kodų lentelės dvi eilutės, kurios ją
atitinkančiame ISO 8859–1 standarte buvo rezervuotos valdymo kodams




Lietuvai skirta 1257 kodų lentelė (16 pav.). Nuo standartinės kodų lentelės ISO 8859–13 ji skiriasi tuo, kad keturi simboliai yra kitose vietose:

„ (165  132, atidarančios lietuviškos kabutės),

“ (180  147, uždarančios lietuviškos kabutės),

“ (161  148, kabutės – du kableliai viršuje),

’ (255  146, vieno kablelio kabutė).

16 pav. Baltijos šalims skirta 1257 kodų lentelė

Skirtumų tarp ISO 8859–13 ir 1257 kodų lentelių atsirado dėl to, kad naujus, į rezervuotas vietas įdėtus specialiuosius ženklus visose „Windows“ terpės kodų lentelėse norėta išlaikyti tose pačiose vietose. Tačiau dalis šių ženklų jau buvo kodų lentelėje ISO 8859–13. Dviejose vietose tas pats simbolis negali būti, todėl tokie simboliai buvo perkelti į naujas pozicijas, esančias rezervuotų kodų (128–159) zonoje, o vietos, kurias jie buvo užėmę ISO 8859–13 lentelėje, liko tuščios. Tiesa, kai kuriuose šriftuose jos išnaudojamos (tuštumos nemėgsta ne tik gamta). Tačiau tokius papildomus simbolius saugu naudoti tik tuo atveju, jeigu žinoma, kad parašytas tekstas bus vaizduojamas (skaitomas) tokiu pat šriftu.

Kai dirbame su „Windows“ terpės programomis, naudojame 1257 kodų lentelę. Kai naudojamės kompiuterių tinklais arba paštu, nežinome, kokios terpės programomis naudojasi tie, su kuo bendraujame ir kaip jie koduoja simbolius. Todėl telekomunikacijose geriau naudotis ISO 8859 grupės lentelėmis. Šiuolaikinės kompiuterių pašto programos siunčiamą laišką automatiškai perkoduoja iš 1257 kodų lentelės į ISO 8859–13 lentelę, o gaunamą, atvirkščiai, iš ISO 8859–13 į 1257 kodų lentelę.

Reikėtų dar pakalbėti apie vieną naują ženklą – Europos Sąjungos valiutos vieneto ženklą eurą „“. Jo dar nebuvo Lietuvos standarte [3], bet jis jau yra ISO 8859–13 standarte. Jo kol kas nėra ir 1257 kodų lentelėje, tačiau čia jam numatytas kodas 128.

Įdėmiai lygindami ISO 8859–13 ir 1257 kodų lenteles galime pastebėti, kad ISO 8859–13 lentelėje nėra lietuviškame rašte vartojamo brūkšnio „–“. Taigi kompiuterių pašte geriau jo nenaudoti. Tokie „nuostoliai“ natūralūs ir pateisinami: savame kompiuteryje galima turėti gausesnį simbolių rinkinį, negu tas, kurį siunčiame į pasaulį (siunčiamas simbolių rinkinys turi tikti bet kokiam kompiuteriui).

Nedideli skirtumai yra ir tarp kitų ISO 8859–x ir jas atitinkančių 125x lentelių. Čia nepateikiame kitų „Windows“ terpės kodų lentelių, išskyrus 1257. Skaitytojas jas gali rasti kompiuteryje. Kodų lenteles galima peržiūrėti pasinaudojus šriftų peržiūros programa „Character Map“, esančia „Accessories“ aplanke.

Taigi situacija su lietuviška „Windows“ kodų lentele kur kas geresnė negu DOS terpėje jau vien dėl to, kad čia vartojame vienaskaitą. Tiesa, ir „Windows“ terpėje buvo sudaryta keletas mėgėjiškų kodų lentelių. Tačiau, mūsų laimei, jos nespėjo paplisti.
 

„OS Mac“ operacinė sistema

„Macintosh" genties kompiuteriuose naudojamos savos kodavimo lentelės. Lietuviškos raidės yra 10029 kodų lentelėje kartu su Vidurio Europos valstybių kalbų raidėmis (17 pav.). Daugelio šalių abėcėles pavyko sutalpinti į vieną kodų lentelę dėl to, kad jos antroje pusėje nebuvo palikta vietos valdymo kodams.

17 pav. Vidurio Europos ir Baltijos šalims skirta „Mac OS"
operacinės sistemos 10029 kodų lentelė




Unikodas

Aštuonių bitų kodų lentelės užtenka vienos arba kelių, bet ne visų Europos kalbų rašto ženklams sutalpinti. Tačiau jos neužtenka ir vienos

18 pav. Lietuviškosios abėcėlės raidžių kodai Unikode

Azijos kalbos hieroglifams. Išeitis – vienam simboliui skirti du arba daugiau baitų.

Šiuo tikslu 1988 m. buvo pradėtas kurti Unikodas [8]. Vienam simboliui čia skiriami du baitai, t. y. 16 bitų. Taigi vienoje kodų lentelėje gali tilpti 216 = 65536 simboliai. 1990 m. buvo paskelbta pirmoji Unikodo versija, o 1996 – antroji. Unikodo projektavimas tęsiamas. Pagrindiniai darbai – Unikodo laisvų vietų užpildymas naujais simboliais.

Pirmieji 256 Unikodo simboliai sutampa su ISO 8859–1 lentelės simboliais. Toliau – lotyniškosios abėcėlės raidės su įvairiomis modifikacijomis (diakritiniais ženklais), kitokios abėcėlės, daugybė įvairiausių kitokių rašto ženklų, hieroglifų.

Unikodo kodus priimta žymėti U+xxxx. Čia xxxx yra keturženklis šešioliktainis skaičius – kodo eilės numeris.

Lietuviškosios abėcėlės raidžių kodavimas Unikode pateiktas 18 paveiksle.

Su Unikodu susiduriame jau dabar. Operacinėje sistemoje „Windows 98“ simboliai jau koduojami Unikodu. Unikodu koduojami ir Javos programavimo kalbos simboliai.

Unikode telpa labai daug simbolių ir kol kas jo visiems pakanka. Tačiau ateityje gal neužteks ir šios didžiulės kodų lentelės. Tai numatyta standarte ISO 10646. Jame vienam simboliui skiriami 32 bitai, t. y. 4 baitai. Jo pirmieji simboliai sutampa su Unikodu. Taigi lietuviškos abėcėlės raidžių kodus šiame standarte galime gauti iš Unikodo kodų jų pradžioje prirašę keturis (šešioliktainius) nulius.
 

Kitos lietuviškos kodų lentelės

Čia apžvelgėme tik svarbesnes kodų lenteles, turinčias lietuviškus rašto ženklus. Jos arba buvo dažniau vartojamos, arba turėjo įtakos projektuojant kitas kodų lenteles. Be jų, buvo dar kelios čia nepaminėtos lentelės. Keletą egzotiškų kodų lentelių galima rasti straipsnyje [6].
 

Literatūra

1. Lietuvos TSR RST 1093–89: Informacijos apdorojimo sistema. Daugiakalbis koduotų ženklų rinkinys su lietuviškomis raidėmis. Aštuonių bitų kodai. – Vilnius, 1989.

2. Lietuvos TSR RST 109589: Informacijos apdorojimo sistema. Personalinių kompiuterių ženklų rinkinys su lietuviškomis raidėmis. Aštuonių bitų kodai. – Vilnius, 1989.

3. LST 1282:1993: Informacijos technologija. 8 bitų lotyniškos abėcėlės koduotų ženklų rinkinys, papildytas lietuviškos abėcėlės raidėmis, skirtas naudoti WINDOWS, UNIX aplinkoje. – Vilnius, 1993.

4. LST 1283:1993: Informacijos technologija. 8 bitų lotyniškos abėcėlės koduotų ženklų rinkinys, papildytas lietuviškos abėcėlės raidėmis, skirtas naudoti MS DOS aplinkoje. 774 kodų lentelė. – Vilnius, 1993.

5. LST 1284:1993: Informacijos technologija. 8 bitų lotyniškos abėcėlės koduotų ženklų rinkinys, papildytas lietuviškos ir rusiškos abėcėlės raidėmis, skirtas naudoti MS DOS aplinkoje. 772 kodų lentelė. – Vilnius, 1993.

6. Oškinis A. Kompiuteris ir lietuvių kalba. – Kompiuteriai, 1991, Nr. 1, p. 5–9.

7. Ralys D., Dadurkevičius V. Lietuviški rašmenys kompiuteryje. – Mokslas ir technika,1991, Nr. 5, p. 29– 31.

8. The Unicode Standard: Version 2.0. – AddisonWesley Developers Press, 1996.


G. Grigas. Lietuviški rašmenys ir kodų lentelės, Informatika, 1998, Nr. 33, p. 21-46.