Miten kirjoittaa esperanton erikoiset kirjaimet? (osa 2)



Muokattu 17.6.2024

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