|
Kaip rašyti
lietuviškus asmenvardžius angliškose tinklalapiuose
Gintautas Grigas
Angliškuose tinklalapiuose tenka parašyti lietuviškus vardus, pavardes,
vietovardžiu, turinčių lietuviškų raidžių, nesančių anglų kalbos
abėcėlėje, pavyzdžiui, Jūratė Šalčiūtė, Klaipėda. Kadangi visos
angliškos raidės yra ir lietuvių kalbai rašyti vartojamose koduotėse (pvz.,
ISO 8859-13, Windows-1257), tai paprasčiausias būdas yra šią koduotę
pasirinkti visam tinklalapiui. Tačiau jis nėra pats geriausias. Interneto
tinklas pasaulinis ir nežinia, kokiame pasaulio krašte tą tinklalapį
skaitys, ar ten kompiuteris atpažins pas mus vartojamas koduotes.
Universalus problemos sprendimas yra Unikodas. Tai universali viso pasaulio
rašto ženklus turinti koduotė. Internete Unikodo ženklai vaizduojami utf-8
kodavimu. Jį atpažįsta šiuolaikinės interneto naršyklės Netscape
Communicator, Internet Explorer ir kt.
Gali atsitikti, kad kokiame nors svieto užkampyje kas nors skaitys
tinklalapį naršykle, neturinčia utf-8 koduotės. Tačiau tokiu atveju kaltas
bus jis pats, kad naudoja šių dienų realijų neatitinkančią programinę
įrangą. Tuo tarpu, jeigu kas nors angliškame tinklalapyje neperskaitys mūsų
pavardžių, koduotų lietuviška 8 bitų koduote, tai galės pagrįstai
pasiteisinti, kad jis lietuvių kalba nesinaudoja ir mūsų koduotė jo
kompiuteryje nebūtina.
Rašymas utf-8 koduote
Rašančiam tinklalapį, reikia pasirinkti HTML tekstų redaktorių, turintį
utf-8 kodavimą, (pvz., Netscape Composer). Iš redaktoriaus meniu
pasirinkus šį kodavimą į tą patį tinklalapį galima rašyti bet kurios
kalbos rašto ženklus.
Tačiau mūsų klaviatūrų tvarkyklės į kompiuterį siunčia 8 bitų
kodus. Tad kaip surinkti Unikodo ženklus?
Iš 8 bitų kodo į Unikodą arbą į utf-8 keičia HTML tekstų redaktorius.
O 8 bitų kodai gali būti interpretuojami įvairiai ir atitinkamai keičiami
Unikodo kodais. Jų interpretacija priklauso nuo tuo metu kompiuteryje
veikiančios 8 bitų koduotės, o ši nuo pasirinktos kalbos.
Kalbą galima pasirinkti iš meniu, kuris dažniausiai būna Windows
darbalaukio apačioje dešinėje. Dažniausiai šio meniu repertuare yra dvi
kalbos lietuvių (Lt) ir anglų (En). Repertuarą galima keisti nuėjus
į kalbų langą (Start->Settings->Control Panel -> Keyboard ->
Language).
Rašant tinklalapį galima keisti kalbas, t. y. tame pačiame
tinklalapyje naudoti įvairių kalbų abėcėles. Šitaip, pasinaudojus Unikodo
kodavimu, galima parašyti skirtingų kalbų raides, kurių nėra toje pačioje
8 bitų koduotėje. Pavyzdžiui, lietuviškose koduotėse yra ne visos
prancūziškos raidės. O persijungus į prancūzų kalbą pasikeis koduotė ir
bus galima rinkti prancūziškas raides. Prireikus lietuviškų raidžių
reikės vėl grįžti prie lietuviškos koduotės.
Į kitą kalbą nebūtina persijungti, jeigu veikianti koduotė turi jos
raides. Todėl esant nustatytai lietuvių kalbai (Lt) galima rašyti ne tik
lietuviškai, bet ir dar 11 kalbų: anglų, danų, estų, latvių, lenkų,
lotynų, norvegų, slovėnų, suomių, švedų ir vokiečių, nes visų šių
kalbų abėcėlių raidės yra koduotėse ISO/IEC 8859-13 ir Windows-1257.
Raides, kurių nėra klaviatūroje, galima surinkti 8 bitų kodais.
Jeigu HTML redaktorius neturi utf-8 kodavimo, tai tinklalapį galima
parašyti 8 bitų koduote ir po to perkoduoti į utf-8 pasinaudojus kokia nors
perkodavimo programa, pavyzdžiui Kodav (http://www.lta.lt/~rims/kodav/).
Tik reikia nepamiršti į perkoduoto tinklalapio antraštę rankiniu būdu (t.y.
grynojo teksto redaktoriumi) įrašyti utf-8 koduotės pavadinimą, pavyzdžiui,
<CONTENT="text/html; charset=utf-8">
Naršyklės testas
Tinklalapyje http://aldona.mii.lt/pms/kalba/utf-8.html yra testas
patikrinimui, kokius utf-8 koduotus rašmenis atpažįsta naršyklė arba HTML
tekstų redaktorius. Jeigu ekrane matomas čia pateiktas paveikslas

tai reiškia, kad jį skaitanti naršyklė (redaktorius) atpažįsta visus
tinklalapyje pavaizduotus rašmenis, o pasirinkti šriftai turi jų paveikslus.
Jeigu matomi neteisingi ženklai ir jų yra daugiau, negu šiame piešinyje,
tai naršyklė neatpažįsta tų ženklų utf-8 kodų.
Jeigu vietoj kai kurių ženklų matomi kvadratėliai, tai reiškia, kad
naršyklė juos atpažįsta, bet jų neturi šriftas.
Teste pateiktų Europos tautų kalbų rašmenis turi dauguma šriftų. Tuo
tarpu japonų ir kinų rašmenis, parodytus paskutinėse testo pastraipose,
parodys tik nedaugelis mūsų kompiuterių, todėl nekaltinkite savo
kompiuterio, jeigu vietoj jų matysite tik kvadratėlius.
Elektroninis paštas
Kai į užsienį siunčiame lietuvišką laišką, tai jis gali būti
koduotas ir 8 bitų koduote, turinčia visas lietuviškas raides (pvz, ISO
8859-13), nes jeigu gavėjas moka lietuviškai, tai jis savame kompiuteryje
turėtų turėti ir lietuvių kalbai tinkamą programinę įrangą. O jei
neturi, tai galėtume jam pagelbėti. Kas kita, jei rašome laišką
užsieniečiui. Vien dėl to, kad jis galėtų perskaityti lietuvišką
asmenvardį, jam gali būtų per didelė prabanga į kompiuterį diegti kad ir
tarptautinę koduotę, turinčią lietuviškas raides. Tuo tarpu įdiegęs
elektroninio pašto programą su utf-8 koduote, jis galės teisingai matyti ne
tik lietuviškus, bet ir bet kuriais kitais rašmenimis parašytus laiškus arba
įtarpus į juos.
Kodas utf-8 iš vidaus
Naudotis Unikodu arba jo kodavimu utf-8 nereiškia, kad reikia žinoti
ženklų kodus. Tačiau tiems, kas nori pažvelgti giliau į ženklų kodavimą
suvokti kodėl ir kaip koduojama, trumpai paaiškinsime apie tai.
Kiekvienas ženklas Unikode koduojamas dviem baitais (oktetais). Abu baitai
sudaro vientisą 16 bitų ilgio žodį dvejetainį skaičių. Tuo tarpu
telekomunikacijose duomenys persiunčiami baitais. Pirmuosius 32 baitus (kodus 031)
telekominikacijų sistemos gali interpretuoti kaip valdančiuosius. Tolesni 96
kodai (32127) yra ASCII ženklai, kuriuos sistemos gali interpretuoti kaip
ASCII ženklus, o ne kaip nors kitaip.
Jeigu 16 bitų ilgio žodžiu koduotą Unikodo ženklą mechaniškai
perskelsime į dvi dalis (du baitus), tai jose pasitaikys bitų kombinacijų iš
intervalo 0127 ir juos sistema gali palaikyti valdymo arba ASCII ženklais.
Todėl jų reikia išvengti, t.y. juos kaip nors kitaip užkoduoti. Tai ir yra
svarbiausia utf-8 paskirtis.
Kodavimas, kai dalis kodų lieka nepanaudoti, ilgina kodą. Siekiant, kad
koduotas tekstas būtų kiek galint trumpesnis, buvo pasirinktas ženklų
kodavimas nevienodu baitų skaičiumi: dažniausiai pasitaikantys ženklai
koduojami vienu baitu, rečiau dviem, o labai retam negaila ir trijų.
Unikodo ženklų kodavimo utf-8 kodu schema parodyta lentelėje.
|
Bitų skaičius |
Dvejetainis kodas Unikode |
1-as
baitas |
2-as
baitas |
3-ias
baitas |
4-as
baitas |
|
1 |
000000000xxxxxxx |
0xxxxxxx |
|
|
|
|
2 |
00000yyyyyxxxxxx |
110yyyyy |
10xxxxxx |
|
|
|
3 |
zzzzyyyyyyxxxxxx |
1110zzzz |
10yyyyyy |
10xxxxxx |
|
|
4 |
110110wwwwzzzzyy+
110111yyyyxxxxxx |
11110uuu |
10uuzzzz |
10yyyyyy |
10xxxxxx |
Čia uuuuu = wwww + 1
Vienu baitu koduojami ženklai, kurių kodai yra internete nuo 0 iki 127, t. y.
visi ASCII ženklai. Jų kodas sutampa su Unikodo antrojo baito reikšme, o šis
su ASCII kodu. Į šį intervalą patenka pagrindinės lotyniškosios
abėcėlės raidės, skaitmenys, svarbiausi skyrybos ženklai. Šie ženklai
sudaro daugumą lotyniškąją abėcėlę vartojančių kalbų tekstuose. Dėl
to čia pasiekiama kodavimo ekonomija.
Į dviem baitais koduojamų ženklų aibę patenka praktiškai visų kalbų
raidės (t. y. ne hieroglifai).
Keturiais baitais koduojamos taip vadinamos Unikodo surogatų poros. Pirmasis
poros kodas yra iš intervalo U+D8000..U+DBFF, o antrasis iš intervalo
U+DC00..U+DFFF. Kiekviename intervale yra po 1024 kodus. Abu kodai skirti vienam
ženklui pavaizduoti. Taigi, visomis kodų poromis galima pavaizduoti 1024×1024
ženklų, t.y. virš milijono. Tai priemonė Unikodo ženklų aibei išplėsti.
Surogatų kodai kol kas nepanaudoti. Jie palikti ateičiai, kai atsiras
naujų ženklų, nebetelpančių į Unikodą.
Unikodo kodas visada keičiamas trumpiausia baitų seką. Pavyzdžiui, kodas
0000000000000001 koduojamas 00000001, bet ne 11000000 10000001. Tai užtikrina
kodavimo vienareikšmiškumą ir suprastina iškodavimą. Iškodavimą taip pat
palengvina tai, kad iš utf-8 kodo galima atpažinti pirmuosius ženklų baitus
(jis prasideda 0, 110, 1110 arba 11110) ir nustatyti, kiek baitų skiriama tam
ženklui. Todėl iškoduoti galima pradėti ir nebūtinai nuo kodų sekos
pradžios.
Nors iš pažiūros kodavimas atrodo sudėtingas, tačiau į jį įsigilinus
galima pastebėti, kad jis sudarytas gana logiškai ir motyvuotai. Ir
perkodavimo algoritmai gali būti sklandūs. Čia pateiktos informacijos pakanka
kodavimo bei iškodavimo programai parašyti. Pabandykite!
Lietuviškų rašto ženklų utf-8 kodai
Raidžių, sutampančių su pagrindinėmis lotyniškosios abėcėlės
raidėmis, skaitmenų ir skyrybos ženklų, išskyrus kabutes ir brūkšnį,
utf-8 kodai (nuo 0 iki 127) sutampa su bet kurios standartinės koduotės kodais
ir išreiškiami vienu baitu. Kiti ženklai išreiškiami dviem baitais.
Pavyzdžiui, žodis Dūkštas būtų koduojamas 9 baitais, kurių
šešioliktainiai kodai būtų tokie:
44 C5 AB 6B C5 A1
74 61 73
Raudonai pažymėti raidžių ū ir š kodai, išreiškiami dviem baitais.
Jeigu šitaip koduotą žodį skaitytume su utf-8 žiūrikliu, tai matytume
teisingą žodį Dūkštas, o 8 bitų žiūriklis teisingai neparodytų
tų ženklų, kurie užkoduoti dviem baitais. Matytume DÅ«kÅtas
Kitų raidžių kodus galima pamatyti skaitant aukščiau minėtą utf-8
testo tinklalapį grynojo teksto šešioliktainiu žiūrikliu.
Lietuviški asmenvardžiai kitų kalbų tinklalapiuose
Tai, kas pasakyta apie lietuviškas raides angliškuose tinklalapiuse, tinka
ir bet kuria kita kalba rašomiems tinklalapiams. Dar daugiau jeigu
anglišką tinklalapį galima parašyti ir Lietuvoje vartojama tarptautine 8
bitų koduote ISO 8859-13 arba Microsoft koduote Windows-1257, tai
kitų kalbų, išskyrus 11 išvardytų šio straipsnio pardžioje, 8 bitų
koduotės neturi lietuviškų raidžių ir čia be Unikodo neapsieisi.
Kompiuterija, 12, 2000, 3435.
|