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 0127) 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 0127) 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 128255), nes visi pirmosios pusės kodų (0127) 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 88591 (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 88591 kodų lentelė
Tais pačiais metais sudaryta antroji kodų lentelė ISO 88592 (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 88592 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 88594, ISO 885910 ir ISO 885913.
Lentelė ISO 88594 (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 88591, nes joje daugiau Vakarų Europos kalbų raidžių, kurios jiems dažniau reikalingos.
12 pav. Šiaurės Europos ir Baltijos šalims skirta ISO 88594 kodų lentelė
Tarptautinis standartas ISO 88594 buvo priimtas 1988 m. Po metų ši kodų lentelė buvo įteisinta Lietuvos standarte RST 109389 [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 892) ir pateikė ISO. 1998 m. jis buvo priimtas ir pavadintas ISO 885913 (13 pav.).
13 pav. Baltijos šalims skirta ISO 885913 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 885913. Didžiojoje Britanijoje, Norvegijoje, Suomijoje, Švedijoje ir Vokietijoje naudojama kodų lentelė ISO 88591, o šių valstybių kalbų raidžių kodai sutampa su mūsiškės ISO 885913 kodais. Taigi ja naudodamiesi galime rašyti ne tik lietuviškai.
Kodų lentelėse ISO 88591 (naudojamoje Danijoje) ir ISO 885913 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 88592 ir lietuviškoje ISO 885913. Todėl naudodamiesi lentele ISO 885913 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 885910 (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 885910
Apie kaimynus buvo galvojama sudarant ir kitas kodų lenteles. Jau minėjome, kad Baltijos šalių kodų lentelėje ISO 885913 yra ir lenkiškos raidės. Tačiau lenkai naudojasi Vidurio Europos kodų lentele ISO 88592, 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 885913. Nors kartais iš užsienio gauname programų, kur lietuvių kalba siejama su kodų lentele ISO 88594. Mat ši kodų lentelė buvo priimta dar 1988 metais, o standartas ISO 885913 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 88592 lentelę, 1252 kodų lentelė ISO 88591 lentelę ir panašiai.
ISO 8859 lentelėse yra neišnaudoti 32 kodai (128159): č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 160255, 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 88591 kodų lentelė, o rezervuoti kodai (128159) paskirti naujiems specialiems simboliams (15 pav.).
15 pav. Vakarų Europai skirtos 1252 kodų lentelės
dvi eilutės, kurios ją
atitinkančiame ISO 88591 standarte buvo rezervuotos valdymo
kodams
Lietuvai skirta 1257 kodų lentelė (16 pav.). Nuo standartinės kodų lentelės ISO 885913 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 885913 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 885913. Dviejose vietose tas pats simbolis negali būti, todėl tokie simboliai buvo perkelti į naujas pozicijas, esančias rezervuotų kodų (128159) zonoje, o vietos, kurias jie buvo užėmę ISO 885913 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 885913 lentelę, o gaunamą, atvirkščiai, iš ISO 885913 į 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 885913 standarte. Jo kol kas
nėra ir 1257 kodų lentelėje, tačiau čia
jam numatytas kodas 128.
Įdėmiai lygindami ISO 885913 ir 1257 kodų lenteles galime pastebėti, kad ISO 885913 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 8859x 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 88591 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 109389: 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. 59.
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.