Miten kirjoittaa esperanton erikoiset kirjaimet? (osa 2)



Tässä toisessa osassa kerron, miten tietokoneet käsittelevät kirjaimia.

Tämän artikkelin teksti asennusohjeineen on ladattavissa Dropboxistani.

Merkistökoodaus

Tietotekniikassa tarkkeelliset kirjaimet voidaan toteuttaa kirjoitus­koneiden tapaan joko kooste­merkkeinä eli valmiina kantamerkin ja tarkkeen yhdistelminä tai yhdistelemällä kaksi (tai useampi) erillistä merkkiä siten, että ne asemoituvat samalle kohdalle.

Erona kirjoitus­koneisiin on, että tietokoneissa merkeistä täytyy tallentaa tietoa, vähintään kutakin merkkiä vastaava koodi (esim. tekstitiedosto koostuu sarjasta näitä koodeja). Näiden numero­koodien tallentaminen ja käsitte­le­minen vaatii muistia. Muisti oli tietotekniikan alku­aikoina kallista, joten aluksi käytettiin vain seitsemää bittiä (eli nollaa ja ykköstä) jokaista merkkiä vastaavan numero­koodin tallentamiseen. Tällöin voitiin esittää 2⁷ = 128 erilaista merkkiä. Kun tuosta luvusta vähennetään englannin suur- ja pienaakkoset, numerot, väli­merkit ja joukko teknisiä ohjaus­koodeja (esim. rivinvaihto), muiden kielien tarvitse­mille merkeille ei oikeastaan jäänyt tilaa.

Muistin halventuessa käytettävien bittien määrää saatettiin kyllä kasvattaa, mutta valitet­tavasti ehti syntyä useita rinnakkaisia merkistöjä, joissa oli tarjolla eri kielille sopiva vali­koima tarkkeellisia kirjaimia. Tästä seurasi, että samaa numero­koodia vastasi eri kirjain sen mukaan, mikä merkistö oli käytössä.

Ajatus yleismaailmallisesta ja mahdollisimman kattavasta merkistöstä syntyi 1980-luvulla. Kesti kuitenkin seuraavan vuosi­kymmenen alkuun, ennen kuin kansainväliset standardointi­järjestöt ISO ja IEC saivat valmiiksi standardin nimeltä ISO/IEC 10646 Universal Character Set UCS. Ohjelmisto­teollisuuden piirissä samaan pyrkinyt projekti sai nimen Unicode. Käytännössä nämä tarkoittavat samaa.

Unicode-merkistöön voidaan koodata standardin viimeisimmän version mukaan 107 361 kirjoitus­merkkiä, joten siihen voidaan sisällyttää kaikkien ikinä kirjoitet­tujen kielien kaikki merkit¹ (siis esim. riimu­kirjoituksen, muinais­sanskriitin ja muinais­kiinan) ja tilaa on silti tuhansille uusille merkeille. Merkistöön ei kuitenkaan ole hyväksytty esimerkiksi klingonin aakkosia Star Trek -fanien suureksi pettymykseksi.

Unicode-standardi määrittelee kolme koodaus­tapaa eli miten kirjaimet ja numero vastaavat toisiaan: UTF-8, UTF-16 ja UTF-32². Tapojen ero näkyy oikeastaan siinä, kuinka paljon kuva­kirjoitukseen perustuvia kirjoitus­merkkejä (esim. japani, kiina) sisältävät tiedostot vievät tilaa. Onneksi nykyiset ohjelmat yleensä tunnistavat automaattisesti koodaus­tavan.

Latinalaisiin kirjaimiin perustuvia merkkejä, ml. siis esperanton erikois­merkit, kirjoitettaessa järkevin tapa on UTF-8, joka on ollut jo pitkään MS Windows³ – ja MacOS⁴-käyttö­järjestelmien oletus. Valitettavasti joidenkin ohjelmien, esim. MS Outlook -sähköposti­ohjelman, oletus­merkistö oli pitkään Windows-1252, mikä ei ole Unicode-merkistö.

UTF-8 merkistökoodausta tulee käyttää aina, kun enin osa tekstiä koostuu latinalaisiin tai kyrillisiin kirjaimiin perustuvista merkeistä.

¹: Huomaa, että koodaus määrittelee merkki­vastaavuuden (esim. A:n koodi on 65 ja a:n 97) eikä ota kantaa tyyleihin. Toisin sanoen merkkien A, A, A ja A koodi on sama 65.
²: Sekä UTF-16:sta että UTF-32:sta on tarkkaan ottaen kolme versiota sen mukaan, missä järjestyksessä koodaus tapahtuu tietokoneen sisäisesti. Nämä ovat ns. BE-, LE- ja BOM-versiot, mutta onneksi tavallisten käyttäjien käyttämät ohjelmat tunnistavat nämä automaattisesti.
³: versiosta MS Windows XP lähtien
⁴: versiosta Mac OS X 10.6 lähtien

« osa 1          osa 3 »

0
0