Ero sivun ”UTF-8” versioiden välillä

Siirry navigaatioon Siirry hakuun
619 merkkiä lisätty ,  31. heinäkuuta 2006
ei muokkausyhteenvetoa
Ei muokkausyhteenvetoa
Ei muokkausyhteenvetoa
Rivi 3: Rivi 3:




'''Unicode''' on standardi, joka määrittelee kaikille maailman merkeille omat merkkikoodinsa. Tarkoituksena on korvata tähän saakka käytössä olleet keskenään hyvin erilaiset, lähes kielikohtaiset merkistöt. Suomessa on Linux-koneissa käytetty enimmäkseen ISO-8859-15-merkistöä. Vanhojen merkistöjen ongelma on, että samalla merkistöllä ei voida esittää useita erilaisia kieliä. Näin ollen esimerkiksi sama tekstitiedosto tai sähköpostiviesti ei voi sisältää tekstiä kuin niillä kielillä, joita kyseisellä merkistöllä voidaan esittää. Unicode pyrkii ratkaisemaan tällaiset ongelmat luomalla kaikille yhteisen merkistön, joka sisältää kaikki nykyiset (ja jopa entiset) kirjoitusjärjestelmät. Unicode-standardi käsittää 1 114 111 merkkiä, ja ne yksilöidään tunnuksella, joka on muotoa U+xxxx. Tunnuksessa ”xxxx” on merkin numerokoodi heksadesimaalimuodossa. Mahdolliset koodit ovat U+0000 – U+10FFFF.
'''Unicode''' on standardi, joka määrittelee kaikille maailman merkeille omat merkkikoodinsa. Tarkoituksena on korvata tähän saakka käytössä olleet keskenään hyvin erilaiset, lähes kielikohtaiset merkistöt. Suomessa on Linux-koneissa käytetty enimmäkseen ISO-8859-15-merkistöä. Vanhojen merkistöjen ongelma on, että samalla merkistöllä ei voida esittää useita erilaisia kieliä. Näin ollen esimerkiksi sama tekstitiedosto tai sähköpostiviesti ei voi sisältää tekstiä kuin niillä kielillä, joita kyseisellä merkistöllä voidaan esittää. Tämä ei kenties häiritse yksittäistä tietokoneenkäyttäjää, mutta sitä mukaa, kun kansainvälinen tietoliikenne on lisääntynyt, on myös lisääntynyt tarve luoda kaikkien yhteinen standardi kirjoitusmerkkien esittämiseksi.
 
Unicode pyrkii ratkaisemaan vanhojen merkistöjen rajallisuuteen liittyvät ongelmat luomalla merkistön, joka sisältää kaikki nykyiset (ja jopa entiset) kirjoitusjärjestelmät. Unicode-standardi käsittää teoriassa 1 114 111 merkkiä, ja ne yksilöidään tunnuksella, joka on muotoa U+xxxx. Tunnuksessa ”xxxx” on merkin numerokoodi heksadesimaalimuodossa. Mahdolliset koodit ovat U+0000 – U+10FFFF. Käytännössä ihan jokainen merkkipaikka ei viittaa mihinkään kirjoitusmerkkiin vaan mukana on jonkin verran myös erilaisia tietokoneen ohjauskoodeja sekä Unicode-standardiin liittyvää erikoistietoa. Joka tapauksessa merkkipaikkoja on niin paljon, että kaikki olemassa olevat kirjoitusmerkit voidaan sen avulla esittää.


Unicode-merkkejä sisältävää tekstiä voidaan tallentaa tietokoneelle useilla eri tavoilla. Linuxissa käytetty Unicoden koodaustapa on nimeltään UTF-8. Tässä koodauksessa yksi Unicode-merkki vie tallennustilaa 1–4 oktettia eli 8 bitin tavua. ASCII-merkistöön kuuluvat merkit (U+0000 – U+007F) esitetään UTF-8:ssa sellaisenaan, yhtenä tavuna, joten UTF-8 on täysin ASCII-yhteensopiva. Se onkin Linuxissa tärkeää, koska siinä käytetään paljon ASCII-muodossa olevia asetustiedostoja ja käynnistysskriptejä. Muiden kuin ASCII-merkkien esittämiseksi tarvitaan avuksi lisätavuja, ja esimerkiksi suomen kieleen kuuluvien ä- ja ö-kirjainten esittämiseen tarvitaan kaksi tavua.
Unicode-merkkejä sisältävää tekstiä voidaan tallentaa tietokoneelle useilla eri tavoilla. Linuxissa käytetty Unicoden koodaustapa on nimeltään UTF-8. Tässä koodauksessa yksi Unicode-merkki vie tallennustilaa 1–4 oktettia eli 8 bitin tavua. ASCII-merkistöön kuuluvat merkit (U+0000 – U+007F) esitetään UTF-8:ssa sellaisenaan, yhtenä tavuna, joten UTF-8 on täysin ASCII-yhteensopiva. Se onkin Linuxissa tärkeää, koska siinä käytetään paljon ASCII-muodossa olevia asetustiedostoja ja käynnistysskriptejä. Muiden kuin ASCII-merkkien esittämiseksi tarvitaan avuksi lisätavuja, ja esimerkiksi suomen kieleen kuuluvien ä- ja ö-kirjainten esittämiseen tarvitaan kaksi tavua.


UTF-8:n lisäksi on olemassa muitakin koodaustapoja, esimerkiksi UCS-2, UCS-4, UTF-7, UTF-16 ja UTF-32. Yleisimmin käytettyjä lienevät UTF-8, UTF-16 ja UTF-32. UTF-16:ssa merkit esitetään joko yhtenä 16-bittisenä lukuna tai mikäli merkin koodi on sitä suurempi, niin kahden 16-bittisen luvun muodostamana nk. surrogaattiparina. UTF-32:ssa merkki esitetään aina yhtenä 32-bittisenä lukuna. Kuten todettu, Linuxissa käytetään yleensä UTF-8:aa. Ohjelmat voivat kuitenkin sisäisesti käyttää jotain muutakin. Ohjelmien tekijät voivat vapaasti valita omaan ohjelmaansa sopivan tavan tallentaa tietoa.
UTF-8:n lisäksi on olemassa muitakin koodaustapoja, esimerkiksi UCS-2, UCS-4, UTF-7, UTF-16 ja UTF-32. Yleisimmin käytettyjä lienevät UTF-8, UTF-16 ja UTF-32. UTF-16:ssa merkit esitetään joko yhtenä 16-bittisenä lukuna tai mikäli merkin koodi on sitä suurempi, niin kahden 16-bittisen luvun muodostamana nk. surrogaattiparina. UTF-32:ssa merkki esitetään aina yhtenä 32-bittisenä lukuna. Kuten todettu, Linuxissa käytetään yleensä UTF-8:aa. Ohjelmat voivat kuitenkin sisäisesti käyttää jotain muutakin koodaustapaa. Ohjelmien tekijät voivat vapaasti valita omaan ohjelmaansa sopivan tavan tallentaa tietoa.


Nykyisin monet Linux-jakelut käyttävät UTF-8:aa oletuksena. Tämän voi havaita siitä, että järjestelmän käyttämien lokaalien nimessä on ”UTF-8”. Esimerkiksi Suomessa käytetään lokaalia nimeltä ”fi_FI.UTF-8”. Tällaista lokaalia käytettäessä järjestelmä tukee Unicodea ja mm. tiedostojen nimiin ja tekstitiedostoihin on periaatteessa mahdollista kirjoittaa kaikkia Unicode-merkkejä. Käytännössä mikään fontti ei ihan kaikkia merkkejä kykene näyttämään.
Nykyisin monet Linux-jakelut käyttävät UTF-8:aa oletuksena. Tämän voi havaita siitä, että järjestelmän käyttämien lokaalien nimessä on ”UTF-8”. Esimerkiksi Suomessa käytetään lokaalia nimeltä ”fi_FI.UTF-8”. Tällaista lokaalia käytettäessä järjestelmä tukee Unicodea ja mm. tiedostojen nimiin ja tekstitiedostoihin on periaatteessa mahdollista kirjoittaa kaikkia Unicode-merkkejä. Käytännössä mikään fontti ei ihan kaikkia merkkejä kykene näyttämään.
Rivi 13: Rivi 15:
== Tekstitiedostot ==
== Tekstitiedostot ==


Jos oma Linux-järjestelmä on aiemmin käyttänyt ISO-8859-15-merkistö (nk. Latin9), ja sittemmin on siirrytty UTF-8:aan, täytyy omat tekstitiedostot muuttaa UTF-8-koodatuiksi, jotta niiden sisältö näkyisi oikein. Yksi tapa tekstitiedoston muuttamiseen UTF-8-koodaukseen on avata se johonkin tekstieditoriin ja tallentaa tämän jälkeen eri koodauksella. Nopeampaa saattaa kuitenkin olla komentotulkin ja ''recode''-ohjelman käyttö:
Jos oma Linux-järjestelmä on aiemmin käyttänyt ISO-8859-15-merkistöä (nk. ISO Latin 9) ja sittemmin on siirrytty UTF-8:aan, täytyy omat tekstitiedostot muuttaa UTF-8-koodatuiksi, jotta niiden sisältö näkyisi oikein. Yksi tapa tekstitiedoston muuttamiseen UTF-8-koodaukseen on avata se johonkin tekstieditoriin ja tallentaa tämän jälkeen eri koodauksella. Nopeampaa saattaa kuitenkin olla komentotulkin ja ''recode''-ohjelman käyttö:
  recode latin9..UTF-8 tiedosto.txt
  recode latin9..utf-8 tiedosto.txt
Tiedostonnimien muuntaminen onnistuu [[convmv]]-nimisellä ohjelmalla.
Tiedostojen nimien muuntaminen onnistuu [[convmv]]-nimisellä ohjelmalla.


== Ohjelmat ==
== Ohjelmat ==
Rekisteröitymätön käyttäjä

Navigointivalikko