UTF-8
Unicode on standardi, joka pyrkii määrittelemään kaikille maailman merkeille omat merkkikoodinsa (UCS). Tarkoituksena on korvata tähän saakka käytössä olleet keskenään kilpailevat merkistöt ja koodisivut, joista kukin on voinut esittää vain osan tarvittavista merkeistä. Esimerkiksi suosittu IRC-client mIRC käyttää suomalaisilla koneilla merkistöä Microsoft CP1252, kun suurin osa Linux-koneista puolestaan käyttää merkistöä ISO-8859-1 (Latin-1) ja Finnish-HOWTO:n mukaan säädetyt Linux-koneet puolestaan merkistöä ISO-8859-15 (Latin-9). Merkistöissä on yhteneväisyyksiä ja esim. tavalliset ääkköset ovat kaikissa samoilla merkkikoodeilla, mutta jo euromerkki näkyy eri merkistöillä eri tavoilla. Unicode ratkaisee ongelman ottamalla käyttöön merkkiavaruuden 0–$10FFFF, joka käsittää siis peräti 1 114 111 merkkiä.
Unicode-merkkejä voidaan koodata useilla eri tavoilla. UTF-8 on Unix-tyyppisissä käyttöjärjestelmissä (esim. Linux) tärkein Unicoden koodaustapa, ja se on jo muutamissa distroissa vakiona käytössä. UTF-8-koodauksessa yksi merkki vie tallennustilaa 1–4 oktettia (tavua), siten että ASCII-merkit (aakkoset, numerot ym., mutta ei esim. ääkköset) esitetään sellaisinaan yhtenä tavuna. Näin saavutetaan ASCII-yhteensopivuus, mikä on tärkeää, koska Unix- ja Linux-koneissa käytetään paljon ASCII-muodossa olevia asetustiedostoja ja käynnistysskriptejä. (UTF-8:lla voisi periaatteessa koodata merkkiavaruuden 0–$7FFFFFFF käyttäen 1–6 tavua. Käytännössä Unicoden koko merkkiavaruus voidaan esittää 1–4 tavulla.)
Muita koodaustapoja ovat UCS-2, UCS-4, UTF-7, UTF-16, UTF-32. Usein kuulee kysyttävän, että eikö kannattaisi samantien siirtyä käyttämään UTF-32:ta, jotta merkit eivät loppuisi kesken. Näin ei käy, vaan kaikilla koodaustavoilla, lukuun ottamatta UCS-2:ta, voidaan esittää kaikki Unicoden noin 1,1 miljoonaa merkkiä. Vanha UCS-2 kykenee vain ensimmäisten 65 535 koodin esittämiseen; sen on korvannut uudempi UTF-16.
UTF-8 on nykyisin monien jakeluiden, esimerkiksi Ubuntun, oletusmerkistö käyttöjärjestelmän tiedostonimien koodaukseen ja tekstitiedostojen muodoksi.
Tekstitiedostot
Eräs tapa tekstitiedoston muuttamiseen UTF-8-koodaukseen on tietenkin avata se johonkin tekstieditoriin ja tallentaa tämän jälkeen eri koodauksella. Nopeampaa saattaa kuitenkin olla komentorivin ja recode ohjelman käyttö:
recode latin9..UTF-8 tiedosto.txt
Tiedostonimien muuntaminen onnistuu convmv:llä.
Ohjelmat
Eräät, varsinkin vanhemmat, ohjelmat eivät hallitse UTF-8 -merkistökoodauksen käyttöä. Tällaisia ovat mm. uutistenlukija slrn ja vanhemmat versiot Nanosta. Slrn tosin osaa näyttää UTF-8:lla koodatut kirjoitukset oikein siinä määrin kun niissä olevat merkit sopivat johonkin kahdeksanbittiseen merkistöön, mutta ei toimi mikäli pääteikkunassakin on UTF-8 käytössä.
Tällaista ohjelmaa voi käyttää luit-ohjelman avulla esimerkiksi näin.
LC_ALL=en_US.ISO-8859-1 luit ohjelmannimi
Samaa komentoa voi käyttää myös ottaessasi ssh-yhteyden sellaiseen koneeseen, jossa käytetään jotakin 8-bittistä merkistöä.
Myöskään kaikki graafiset ohjelmat eivät hallitse UTF-8:aa, esimerkiksi Dillo-selain ei toistaiseksi osaa näyttää sillä koodattuja www-sivuja.
Emacs
GNU Emacs toimii UTF-8:n kanssa, kunhan .emacsrc:ssä on seuraava rivi.
(prefer-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (set-terminal-coding-system 'utf-8)
IRC
Nykyisin suomalaisilla IRC-kanavilla käytetään enimmäkseen vanhoja 8-bittisiä merkistöjä, joilla esiintyy edellä kuvattuja ongelmia. Tästä syystä siirros UTF-8:n käyttöön on pikkuhiljaa tapahtumassa, mutta sitä luonnollisesti hidastaa se, että monet clientit eivät tue ko. merkistöä lainkaan ilman erillisiä scriptejä ja toisaalta se että vain muutama client saadaan tukemaan vanhaa 8-bittistä ja UTF-8:a samaan aikaan, siten että muiden kirjoittamat tekstit näkyisivät oikein riippumatta siitä kumpaa käytetään. Tilanne onneksi kuitenkin paranee kaiken aikaa ja on selvää että UTF-8:n käyttöön tullaan tulevaisuudessa siirtymään kokonaan. Siirros ei kuitenkaan missään tapauksessa tule tapahtumaan yhden yön aikana, joten olisi toivottavaa että mahdollisimman monista clienteistä löytyisi sekakäytön mahdollistava merkistön autodetectointi. Muutamilla kanavilla sai vuodenvaihteessa merkittävää kannatusta merkistönvaihtopäiväksi valittu päivämäärä 1.1.2006, ja siirtyminen tehtiin joillain kanavilla kokonaan. Nämä kanavat ovat kuitenkin ainakin toistaiseksi pieni vähemmistö.
Alla on lueteltu tärkeimpien IRC-ohjelmien UTF-8-yhteensopivuus.
ChatZilla
Merkistö on valittavissa valikosta, ei automaattista tunnistusta.
Irssi
Irssi 0.8.10 tukee merkistömuutoksia nykyisessä vakaassa versiossaan ja sitä edeltäneissä release candidateissa rc5:stä eteenpäin. Tämä mahdollistaa merkistön valinnan kanavakohtaisesti, kuten myös sen, että tästä riippumatta voidaan esimerkiksi logit kirjoittaa aina UTF-8-muodossa. Tärkeimmät asetukset ovat /set term_charset <merkistö> (asettaa terminaalin käyttämän merkistön), /set recode_out_default_charset (asettaa oletusmerkistön lähtevälle tekstille) ja /recode add <merkistö> (asettaa aktiivisessa ikkunassa käytettävän merkistön). Merkistön automaattinen tunnistus toimii käytännössä luotettavasti.
Irssi 0.8.10rc4 ja vanhemmat eivät sisällä sisäänrakennettua merkistömuunnostukea. /set term_type utf8 tai /set term_type 8bit asetettava terminaalin tyypin mukaisesti. Merkistömuunnostuen saa scripteillä recode.pl ja recode_ion.pl tai pluginilla charconv. Älä asenna useampaa samanaikaisesti, yksi riittää. rc5 ja rc6-versioissa recode-toiminto oli kehitysasteella, joten toimivuus ja ominaisuudet eivät ole täydellisiä. Mikäli mahdollista, nämä versiot kannattaa tietenkin päivittää uusimpaan vakaaseen versioon.
Erään ongelman muodostavat kanavat, joiden nimissä käytetään esimerkiksi Latin1-merkkejä, suomenkielisillä kanavilla yleensä ääkkösiä. UTF-8-terminaalilla niitä ei suoraan voi kirjoittaa ja UTF-8:lla kirjoitettu kanava #ääkkönen tietenkin on irc-serverin kannalta täysin eri kanava kuin vastaava nimi Latin1:llä kirjoitettuna. Ongelman voi kiertää esimerkiksi käyttämällä komennon /join #ääkkönen sijaan /eval-komentoa, jolloin merkkien numerokoodeja voidaan kirjoittaa suoraan esimerkiksi oktaaleina: /eval /join \344\344kk\366nen. Merkkien koodeja voi tarkistaa esimerkiksi tästä taulukosta.
KVIrc
IRC-client QT/KDE:lle. Tukee suoraan autodetectointia. Yläkulmassa on kiinalainen kirjoitusmerkki, josta voi valita merkistön kanavakohtaisesti (myös verkkokohtainen ja ohjelmanlaajuinen merkistön valinta on mahdollista). UTF-8:n recode vanhaan muotoon onnistuu valinnalla Smart-alavalikon valinnalla UTF-8/ISO-8859-15 ( UTF-8? -> Western, Latin 1 + Euro).
KVirc on saatavilla myös Windowssille, joten sitä voi tarjota merkistöongelmista kärsiville mIRC:n käyttäjille.
mIRC
mIRC ei ole Linux-ohjelma, mutta monet käyttävät Windowsissa vanhoja versioita siitä ja valittavat UTF:stä juuri siksi että skandit eivät näy heillä. Kuitenkin mIRC:in uusi 17.2.2006 julkaistu versio 6.17 osaa näyttää oikein myös UTF-8 koodatut skandit ilman säätämistä!
Wireless IRC
Ei tue autodetectointia, mutta asetuksista voi määritellä merkistöksi UTF-8:n.
X-Chat
Verkkokohtainen merkistön valinta asetuksista. Autodetectointi vain silloin kun käytössä on UTF-8.
X-Chatin sivustolta löytyy myös python-scripti (lamechan.py), jolla voi kanavakohtaisesti valita käytetäänkö UTF-8:aa vai jotain toista merkistöä. Tätä scriptiä ei ole saatu toimimaan X-Chatin Windows-versioilla.
jmIrc
Asetuksista voi määritellä merkistöksi UTF-8:n, tukee myös autodetectointia.
Linkkejä
- Virallinen merkistönvaihtopäivä ja tarkat ohjeet clientien säätämiseen Tukaanin Wikissä
- IRC-kanavien UTF-8-säännöt