Rekisteröitymätön käyttäjä
Ero sivun ”UTF-8” versioiden välillä
Siirry navigaatioon
Siirry hakuun
ei muokkausyhteenvetoa
Ei muokkausyhteenvetoa |
Ei muokkausyhteenvetoa |
||
Rivi 3: | Rivi 3: | ||
'''Unicode''' on standardi, joka | '''Unicode''' on standardi, joka määrittelee kaikille maailman merkeille omat merkkikoodinsa (UCS). 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-merkkejä voidaan | 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 on | 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. | ||
== 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ö: | |||
recode latin9..UTF-8 tiedosto.txt | recode latin9..UTF-8 tiedosto.txt | ||
Tiedostonnimien muuntaminen onnistuu [[convmv]]-nimisellä ohjelmalla. | |||
== Ohjelmat == | == Ohjelmat == |