Johdanto
Tietokoneitten ja tietotekniikan kehitys on tapahtunut valtaosin
Yhdysvalloissa, joten käytettävissä oleva merkistö on valittu sen
mukaisesti. Tämä on aiheuttanut muissa maissa jatkuvia ongelmia
kansallisten merkistöjen kanssa. Tämän ohjeen tarkoituksena on selvittää
mitä erilaisia tapoja koodata suomenkielen vaatiman erikoismerkit on
käytössä.
7-bittinen ASCII (American Standard Code for Information Interchange)
7-bittinen peruskoodi, jossa ei ole skandinaavisia merkkejä. Merkit on
saatu käyttöön korvaamalla erikoismerkit {|}[\] skandinaavisilla
merkeillä. Varsin yleinen päätekäytössä. Samoin vanhemmissa
mikrotietokoneissa (Apple ][, CP/M jne.) Lisäksi kirjaimet åäö
sijoittuvat merkistössä muiden kirjaimien jatkoksi, mistä on toisinaan
hyötyä. Silti, toteutus on kömpelö, etenkin kun päätettä käytetään
ohjelmointiin, jolloin on usein tehtävä valinta skandinaavisten merkkien
ja välttämättömien hakasulkujen välillä. Päätteissä tämä standardi
kulkee nimellä SF-2
Kansalliset muunnokset on standardoitu ISO:n 646 -standardissa.
Lisäksi on olemassa versio jossa merkkien {|}[\] lisäksi merkit `@~^ on
korvattu kirjaimilla éÉüÜ. Tätä SF-1:ksi kutsuttua versiota ei
suositella käyttämään, koska kyseiset kirjaimet ovat sangen harvinaisia
ja vastaavia erikoismerkkejä tarvitaan varsin usein.
ISO 8859-1 (ISO Latin-1 alphabet)
Kansainvälisesti hyväksytty merkistö, jossa skandinaaviset merkit on
sijoitettu 8-bittiseen merkistöön tavallisen ASCII-merkistön
yläpuolelle. Merkit 0-127 ovat samat kuin 7-bittisessä ASCII-
merkistössä ja merkit 128-255 sisältävät erilaisia kansallisia merkkejä.
PC-merkistö
IBM-PC ja yhteensopivissa koneissa käytössä oleva 8-bittinen merkistö.
Toteutettu kuten ISO Latin-1 -merkistö, mutta merkkien koodit ovat
toiset. Vanhempi kuin ISO-standardi. Huomattavaa on että Microsoft
Windows-käyttöliittymä PC-koneissa käyttää ISO-standardin mukaisia
merkkejä, joka aiheuttaa ongelmia jo koneen sisäisissä
tiedostonsiirroissa.
Apple Macintosh-merkistö
Kuten PC- ja ISO-merkistö, mutta kolmas erilainen tapa esittää sama
asia.
DEC Multinational
Digital Equipment Corporationin päätteissä käytetty vanha merkistö on
toteutettu samalla tekniikalla kuin muutkin 8-bittiset merkistöt, mutta
merkkien paikat ovat toiset. Huomattavaa on kuitenkin että merkit åäöÅÄÖ
ovat samoissa paikoissa kuin ISO Latin-1 merkistössä, kuten suurin osa
muistakin ISO:n merkeistä. Useimmissa päätteissä on nykyään sekä ISO
Latin-1 että DEC Multinational -merkistöt.
DEC:n merkistöä voidaan myös käyttää 7-bittisenä lähettämällä päätteelle
ASCII-koodi 21 (NAK, control-U) ja kyseinen merkki 7-bittisenä.
EBCDIC
IBM:n suurkoneitten käyttämä merkistö, joka eroaa kaikista muista
merkistöistä. Kansallisia versioita on suuri määrä. Taulukossa esitetty
koodaus on yleisin Suomessa käytössä oleva, mutta muitakin on olemassa.
Roman-8
Hewlet Packardin käyttämä 8-bittinen merkistö.
Postscript
Postscript-tulostuskielessä merkit on nimetty. Lisäksi on olemassa
vakiokoodaus nimettyjen merkkien esittämisestä numero- tai
bittikoodeina. Tämä koodaus ei kuitenkaan vastaa mitään muuta koodausta
eikä käsitä suomalaisia merkkejä. Useimmista Postscript-kirjoittimista
löytyy kuitenkin ISOLatin1Encoding, joka vastaa ISO 8859-1 koodausta.
ISO 10646
ISO:n uusi 8/16/32-bittinen merkistö, joka pyrkii esittämään _kaikki_
tällä planeetalla käytössä olevat kirjoitusmerkit, elävissä ja
kuolleissa kielissä. (Nuolenpäät, riimut, hieroglyyfit jne.)
Standardin 8-bittinen osuus sisältää ISO 8859-1 -merkistön ja
16-bittinen osuus sisältää Unicode-merkistön.
Unicode
16-bittinen merkistö joka sisältää nykyisten elävien kielten tarvitsemat
kirjoitusmerkit. Unicode ja ISO 10646 olivat alunperin kilpailevia
vaihtoehtoja, mutta sittemmin ne on yhdistetty siten että Unicode
sisältyy ISO 10646 -merkistöön.
Taulukko suomalaisten merkkien koodauksista eri järjestelmissä
å ä ö Å Ä Ö
175 173 174 135 133 134 Oct
7-bit 125 123 124 93 91 92 Dec
7D 7B 7C 5D 5B 5C Hex
} { | ] [ \ Asc
Amiga 345 344 366 305 304 326 Oct
ISO 8859-1 229 228 246 197 196 214 Dec
Windows E5 E4 F6 C5 C4 D6 Hex
206 204 224 217 216 231 Oct
PC 134 132 148 143 142 153 Dec
Atari ST 86 84 94 8F 8E 99 Hex
214 212 232 201 200 205 Oct
Mac 140 138 154 129 128 133 Dec
8C 8A 9A 81 80 85 Hex
345 344 366 305 304 326 Oct
DEC 8-bit 229 228 246 197 196 214 Dec
E5 E4 F6 C5 C4 D6 Hex
145 144 166 105 104 126 Oct
DEC 7-bit 101 100 118 69 68 86 Dec
65 64 76 45 44 56 Hex
320 300 152 133 173 174 Oct
EBCDIC 208 192 106 91 123 124 Dec
D0 C0 6A 5B 7B 7C Hex
} { $ # @ Ebc
324 314 316 320 330 332 Oct
Roman-8 212 204 206 208 216 218 Dec
D4 CC CE D0 D8 DA Hex
Postscript å aring ä adieresis ö odieresis
Å Aring Ä Adieresis ö Odieresis
Taulukko harvemmin käytettyjen erikoismerkkien koodauksista eri
järjestelmissä
é ü É Ü
140 176 100 136 Oct
7-bit 96 126 64 94 Dec
60 7E 40 5E Hex
` ~ @ ^ Asc
Ansi 351 374 311 334 Oct
ISO 8859-1 233 252 201 220 Dec
Windows E9 FC C9 DC Hex
Amiga
202 201 220 232 Oct
PC 130 129 144 154 Dec
Atari ST 82 81 90 9A Hex
216 237 203 206 Oct
Mac 142 159 131 134 Dec
8E 9F 83 86 Hex
351 374 311 334 Oct
DEC 8-bit 233 252 201 220 Dec
E9 FC C9 DC Hex
151 174 111 134 Oct
DEC 7-bit 105 124 73 92 Dec
69 7C 49 5C Hex
171 241 340 Oct
EBCDIC 121 161 224 Dec
79 A1 E0 Hex
~ Ö Ebc
Rivinvaihtokoodit ja syötevirran loppukoodit
ASCII-koodit kymmenjärjestelmässä
Unix:
Rivinvaihto on yksinkertainen LF-merkki. (Asc 10)
Päätteeltä tulevan syöttövirran loppumerkki on yleensä ^D (Asc 4).
MS-DOS, CP/M:
Rivinvaihto koostuu CR LF -parista. (Asc 13 10)
Näppäimistöltä tulevan syöttövirran loppumerkki on ^Z (Asc 26).
VMS:
Rivinvaihto koostuu tiedostoformaatista riippuen CR LF -parista,
pelkästä CR:stä tai pelkästä LF:stä (Asc 13 10, 13, 10).
Päätteeltä tulevan syöttövirran loppumerkki on yleensä ^Z (Asc 26)
Apple Macintosh:
Rivinvaihto on CR-merkki. (Asc 13)
Amiga:
Rivinvaihto on yksinkertainen LF-merkki. (Asc 10)
Päätteeltä tulevan syöttövirran loppumerkki on yleensä ^\ (Asc 28).
VM/XA:
Virtuaaliset reikäkortit eivät tarvitse rivinvaihtoa ja tiedosto
päättyy kun korttipakkakin päättyy.
Yleisiä ongelmia
Aakkostus
Useat ohjelmat aakkostavat tekstin merkin numerokoodin mukaisesti.
Tämä toimii hyvin ASCII-koodiston kanssa niin kauan kun ei käytetä
skandinavisia merkkejä. Skandinaaviset merkit eivät aakkostu
yhdessäkään koodissa automaattisesti oikein.
Ei ole myöskään mahdollista suunnitella kansainvälistä merkistöä
jossa aakkostus tapahtuisi automaattisesti oikein, koska säännöt
vaihtelevat eri kielissä. Esimerkiksi saksan kielessä ä sijoittuu
samalle paikalle kuin a, kun taas meillä ä:llä on oma paikkansa.
Puhumattakaan espanjan hienouksista tai eri kielten tavasta ohittaa
etuliite nimiä aakkostettaessa.
Niinpä aakkostus on aina käsiteltävä erikoistapauksena. Parasta olisi
valmistautua aakkostukseen jo ohjelmointivaiheessa. Mikäli se ei ole
mahdollista, voi yrittää esim. suomalaisten merkkien korvaamista muilla,
oikein järjestäytyvillä merkeillä ennen aakkostusta ja sitten korvata
merkit takaisin päin aakkostuksen jälkeen (kömpelöä).
Sähköposti ja Newssit
Suomessa korkeakoulujen FUNET-verkossa sähköpostissa ja News-palvelussa
on nyt (kesä 1994) siirrytty 8-bittisiin ISO Latin-1 -merkkeihin.
Internetin sähköpostiin on olemassa MIME-niminen laajennus (Multipurpose
Internet Mail Extension), joka välittää 8-bittisiä sanomia 7-bittisessä
siirtoverkossa. MIME siirtää myös tiedon sanoman koodaukseen käytetystä
merkkivalikoimasta.
--
Timo Kiravuo, kir...@nixu.fi
http://www.nixu.fi/~kiravuo/
Helsinki, FINLAND