Tämä dokumentti on lähinnä historiallinen: se kuvaa ongelmia, joilla oli merkitystä Webin alkuaikoina. Nykyisin Unix-, Linux- ym. ympäristöissä toimivat selaimet yleensä tulkitsevat tässä kuvatut merkkien koodit samoin kuin Windows.
Niin sanotussa Windows-merkistössä on eräitä merkkejä, mm. ajatusviivat, jotka eivät kuulu ISO-Latin-1-merkistöön. Tämä aiheuttaa joskus pahojakin ongelmia, kun Windows-ympäristössä tehty dokumentti siirretään Webiin tarkistamatta konversio-ohjelman tuottamaa tulosta. Tässä käsitellään ratkaisua, jossa korvataan kyseiset ongelmalliset merkit lähinnä vastaavilla ISO-Latin-1-merkeillä, kuten ajatusviiva yhdysmerkillä.
I have written a more extensive document in English about the topic discussed here: On the use of some MS Windows characters in HTML.
Tässä kuvattava ratkaisu on varsin konservatiivinen mutta edelleenkin perusteltu meilissä (sähköpostissa). Myös Web-sivuilla sitä voi käyttää, jos ei halua ottaa mitään riskejä merkistön suhteen. Itse asiassa useimmilla sivuilla edelleenkin menetellään näin.
Käsitteellistä taustaa tässä kuvattaville ilmiöille ja ongelmille antaa sivu Mikä on merkki?
Tässä käsiteltävät ongelmat ilmenevät
Word Wide Webin käyttäjille
siten, että joidenkin Web-dokumenttien teksti
näyttää omituiselta.
Tavallisin oire on, että tekstistä
puuttuu merkkejä.
Oireet vaihtelevat käytettävän
katseluohjelman ja muun ympäristön mukaan, esim.
Viimeksi mainittu ilmenemistapa on ikävin, joskin se
on onneksi varsin harvinainen. Se on esiintynyt ainakin
käytettäessä graafista selainta
X-palvelinohjelmiston kautta.
Lisäksi lisäoireena on ollut selaimen sekoaminen niin,
että jatkossa merkit ylipäänsäkin näkyvät miten sattuu. Ongelman syynä on se, että dokumentissa käytetään
ISO-Latin-1-merkistöön kuulumattomia
merkkejä, erityisesti sellaisia koodeja, jotka kyseissä
merkistössä on nimenomaisesti varattu ei-kirjoittuville
merkeille eli kontrollimerkeille.
Ongelman tekee melko tavalliseksi se, että osa näistä
merkeistä on ns. Windows-merkistössä
kirjoittuvia merkkejä
kuten ajatusviiva, promillemerkki ym.
Usein esitetty
väite, jonka mukaan Windows-merkistö on sama
kuin ISO-Latin-1, ei siis pidä paikkaansa.
Windows-merkistöä kutsutaan usein harhaanjohtavasti
ANSI-merkistöksi, vaikka se nimenomaan ei ole minkään
standardointijärjestön (kuten ANSI) hyväksymä vaan valmistajan, Microsoftin,
määrittelemä. Virallisempi nimi on Windows Latin 1
ja koodinimi (ns. charset-nimi) windows-1252.
Vaikka HTML-kielen määrittelyt, esim. alkuperäinen
RFC 1866
(HTML 2.0),
puhuvat merkistöasioista yleisin ja tulkinnanvaraisin sanakääntein,
niin käytännössä merkistönä on enimmäkseen ollut ISO-Latin-1
eli ISO 8859-1.
Sitäkään eivät aivan kaikki katseluohjelmat
(Mac-tietokoneissa) vielä tue aivan täysin.
Ei pidä ilman muuta olettaa, että dokumentissa olevat
muut kuin ISO-Latin-1-merkit näkyisivät missään järkevässä
muodossa, vaikka
näkyisivät ihan halutulla tavalla dokumentin tekijän
omalla ohjelmalla ja omassa käyttöympäristössä katseltuina. Ne voivat
näyttää
täysin käsittämättömiltä muualla.
Usein Web-dokumentit on tuotettu jollakin muunnosohjelmalla
eli konvertterilla. Näyttää ilmeiseltä, että kyseisten ohjelmien
tekijätkään eivät aina ole olleet tietoisia ISO-Latin-1-merkistön
ja Windows-merkistön eroista. Niinpä ohjelmat saattavat "päästää
lävitseen" edellä mainittuja Windowsin omia merkkejä ilman muunnoksia
(tai väärin muuntaen) ja jopa väittää tuotostaan ISO-8859-1:n
mukaiseksi.
Vastaavia ongelmia, joissa jokin merkki esitetään ISO-Latin-1:n
vastaisella tavalla, esiintyy myös dokumenteissa, jotka on tuotettu
esim. PC- tai Mac-merkistöä käyttävästä tiedostosta.
Olen nähnyt mm. dokumentteja, jotka on ilmeisesti konvertoitu
PC-merkistöä käyttävästä muodosta ja joissa ö-kirjaimen tilalla
on oktaalikoodi 224; se on ö:n koodi PC-merkistössä mutta kuuluu
ISO-Latin-1:ssä kontrollimerkeille varattuun alueeseen.
(Korrekti muunnos olisi sellainen, jossa koodina on ISO-Latin-1:n
mukainen 366 tai jossa ö:n tilalla HTML-dokumentissa on
symbolinen merkintä Ongelman ratkaisuna on lyhyesti sanottuna se, että ei käytetä Web-dokumenteissa
merkkejä, joiden oktaaliset koodiarvot ovat 200 - 237. Tämä voi vaatia
erilaisia toimenpiteitä, joista eräitä kuvataan jäljempänä.
Jos käytät konversio-ohjelmia, jotka muuntavat esim. Word-dokumentteja
HTML:ksi, tarkista, ettei tuloksessa ole koodiarvoja 200 - 237.
Tämä voidaan tarvittaessa tehdä vaikkapa
pienellä C-ohjelmalla. Tämä lähestymistapa on nykyisin varsin varovainen Webissä,
sillä jäljempänä kuvattava tapa esittää merkit standardien mukaan
toimii jo lähes kaikissa selaimissa. Sen sijaan se on edelleenkin
hyvin tarpeellinen esimerkiksi lähetettäessä meiliä (sähköpostia). Windows-merkistöstä on eri käsikirjoista erilaisia muunnelmia,
eikä sille näytä kovin helposti löytyvän virallista määritelmää.
Seuraava esitys kuitenkin vastannee tavallista tilannetta ja
lienee käsiteltävän käytännön ongelman kannalta riittävä.
ISO-Latin-1-merkistössä (oktaalisia) koodiarvoja 200 - 237
on nimenomaisesti varattu kontrollimerkeille, siis muille kuin
kirjoittuville merkeille. Sen sijaan Windows-merkistössä osa
niistä on kirjoittuvia merkkejä.
Erään kuvauksen perusteella ne ovat seuraavat;
esitän sen mukaisen
englanninkielisen nimen ja oktaalikoodin sekä
suomenkielinen kuvailuni ja ehdotukseni tavasta korvata merkki
ISO-Latin-1-merkillä tai -merkeillä, ja mukaan on otettu
myös myöhemmin merkistöön lisätyt euron merkki ja hattu-z. Korvaavia merkkejä käytettäessä on tietysti käytettävä harkintaa, jossa
otetaan huomioon asiayhteys. Koska Windows-merkistössä on enemmän kirjoittuvia
merkkejä kuin ISO-Latin-1:ssä, muunnoksessa häviää väistämättä informaatiota.
Tilanteesta riippuu, onko tämä vakavaa. Jos edellä mainittuja Windows-merkkejä
sisältävä dokumentti halutaan sijoittaa Webiin siten, että merkit säilyvät
sellaisinaan, niin ainoa mahdollisuus on tallettaa se kuvamuodossa
(esim. Postscript-muodossa). Yleensä tämä
ei ole tarpeellista.
Erityisiä huomautuksia edellä mainituista merkeistä ja niiden
korvaamisesta:
Seuraavassa taulukossa esitetään Windows-merkistön lisämerkkien
eräät standardinmukaiset esitystavat HTML:ssä, nimittäin merkki-
ja entiteettiviittaukset. Ensimmäisessä sarakkeessa on merkki itse,
toisessa merkin virallisimpana
pidettävä suomenkielinen nimi, kolmannessa merkkiviittaus ja
neljännessä entiteettiviittaus. Merkit ovat merkkiviittauksen numeron ja
siten Unicode-koodin mukaisessa järjestyksessä.
Ongelman syy
ö
.)
Ongelman ratkaisu
Windows-merkistö ja korvikkeet
euro sign 200 euron merkki euroa
baseline single quote 202 rivin alareunassa oleva puolilainausmerkki '
florin 203 floriinin merkki, kursiivi-f f
baseline double quote 204 rivin alareunassa oleva kokolainausmerkki "
ellipsis 205 poisjätön eli ellipsin merkki, kolme pistettä ...
dagger 206 risti (kuolinhetken t. alaviitteen merkki) k. tai ¹
double dagger 207 kaksoisristi (yleensä alaviitteen merkki) ²
circumflex accent 210 sirkumfleksi ^
permile 211 promillemerkki o/oo
S Hacek 212 iso hattu-s Sh tai SH
left single guillemet 213 vasemmanpuoleinen ranskalainen lainausmerkki "
OE ligature 214 O:n ja E:n yhdistelmä eli ligatuuri Oe tai OE
Z Hacek 216 iso hattu-z Zh tai ZH
left single quote 221 vasemmanpuoleinen puolilainausmerkki '
right single quote 222 oikeanpuoleinen puolilainausmerkki '
left double quote 223 vasemmanpuoleinen kokolainausmerkki "
right double quote 224 oikeanpuoleinen kokolainausmerkki "
bullet 225 (musta) "pallukka" o tai -
endash 226 lyhyt ajatusviiva -
emdash 227 pitkä ajatusviiva -
tilde accent 230 tilde ~
trademark ligature 231 tavamerkin symboli, TM (yhtenä merkkinä) TM
s Hacek 232 pieni hattu-s sh
right single guillemet 233 oikeanpuoleinen ranskalainen lainausmerkki "
oe ligature 234 o:n ja e:n yhdistelmä eli ligatuuri oe
z Hacek 236 pieni hattu-z zh
Y Dieresis 237 Y, jonka päällä on treema eli kaksi pistettä Y
Huomautuksia korvikemerkinnöistä
o/oo
,
ja tällöin yhtenäisyyden vuoksi tekstissä ei käytetä prosenttimerkkiä
(%) vaan se korvataan
merkkiyhdistelmällä o/o
.
Merkkien oikea esitys HTML:ssä
suomenkielinen
nimi
merkkiv.
entiteetti
Unicode
huomautuksia
Œ
latinalainen
suuraakkosligatuuri oe
Œ
Œ
U+0152
mm. ranskassa
œ
latinalainen
pienaakkosligatuuri oe
œ
œ
U+0153
mm. ranskassa
Š
latinalainen suuraakkonen s
ja hattu
Š
Š
U+0160
iso hattu-s
š
latinalainen pienaakkonen s
ja hattu
š
š
U+0161
pieni
hattu‑s
Ÿ
latinalainen suuraakkonen y
ja treema
Ÿ
Ÿ
U+0178
ranskassa
Ž
latinalainen suuraakkonen z
ja hattu
Ž
U+017D
iso hattu-z
ž
latinalainen pienaakkonen z
ja hattu
ž
U+017E
pieni
hattu‑z
ƒ
latinalainen pienaakkonen f
jossa koukku
ƒ
ƒ
U+0192
ˆ
sirkumfleksi-tarke
ˆ
ˆ
U+02C6
˜
pieni tilde
˜
˜
U+02DC
eri kuin ~
-
n-viiva
–
–
U+2013
lyhyt ajatusviiva
-
m-viiva
—
—
U+2014
pitkä
ajatusviiva
‘
ylösalainen
puolilainausmerkki
‘
‘
U+2018
mm. englannissa
’
puolilainausmerkki
’
’
U+2019
mm. suomessa
‚
rivinalinen
puolilainausmerkki
‚
‚
U+201A
“
ylösalainen
kokolainausmerkki
“
“
U+201C
mm. englannissa
”
kokolainausmerkki
”
”
U+201D
mm. suomessa
„
rivinalinen
kokolainausmerkki
„
„
U+201E
†
risti
†
†
U+2020
‡
kaksoisristi
‡
‡
U+2021
•
luetelmapallo
•
•
U+2022
…
kolme pistettä
vaakasuunnassa
…
…
U+2026
‰
promillemerkki
‰
‰
U+2030
‹
vasemmalle osoittava
kulmapuolilainausmerkki
‹
«
U+2039
mm. ranskassa
›
oikealle osoittava
kulmapuolilainausmerkki
›
›
U+203A
mm. ranskassa
€
euron merkki
€
€
U+20AC
™
tavaramerkin
merkki
™
™
U+2122