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

Linux.fista
Siirry navigaatioon Siirry hakuun
p (lisätty emacs)
Rivi 25: Rivi 25:


Myöskään kaikki graafiset ohjelmat eivät hallitse UTF-8:aa, esimerkiksi [[Dillo]]-selain ei toistaiseksi osaa näyttää sillä koodattuja www-sivuja.
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 ==
== IRC ==

Versio 15. tammikuuta 2006 kello 20.51

Linux.fi-wikissä artikkelit käsittelevät yleensä aihettaan siltä osin, kuin se koskee Linuxia ja avoimia/vapaita ohjelmistoja. Yleisluontoisemman artikkelin tästä aiheesta löydät tietosanakirja Wikipediasta.

UTF-8 Wikipediassa


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. 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 21-bittisen merkkiavaruuden, johon mahtuu siis peräti kaksi miljoonaa merkkiä, joista usean merkin yhdistelmillä saadaan vielä lisää. Tämän katsotaan riittävän ikuisesti.

Unicode-merkkejä voidaan koodata useilla eri tavoilla. UTF-8 on unix-puolella (Linux) tärkein Unicode-koodaustapa ja se on jo muutamissa distroissa vakiona käytössä. Tässä yksi merkki on kooltaan 1-6 oktettia (tavua), siten että ASCII-merkit (aakkoset, numerot, yms, mutta ei esim. ääkköset) ovat sellaisinaan ja näin saavutetaan ASCII-yhteensopivuus.

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:a, jotta merkit eivät loppuisi kesken. Näin ei käy, vaan kaikilla koodaustavoilla, lukuun ottamatta UCS-2:a, voidaan esittää kaikki kaksi miljoonaa saatavilla olevaa koodia. UCS-2 kykenee vain ensimmäisten 65 tuhannen koodin esittämiseen.

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 latin..UTF-8 tiedosto.txt

Ohjelmat

Eräät, varsinkin vanhemmat, ohjelmat eivät hallitse UTF-8 -merkistön 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. Täytyy tosin mainita että useilla kanavilla on saanut merkittävää kannatusta merkistönvaihtopäiväksi valittu päivämäärä 1.1.2006, eli siis vuoden vaihteen jälkeen olisi kaikkien asioista perillä olevien erittäin suotavaa alkaa kirjoittaa vain UTF-8:a kaikille kanaville. Tällä mahdollistetaan mahdollisimman nopea ja helppo siirtymä niillekin, joilla ei autodetectointia clientissään ole.

Alla on lueteltu tärkeimpien IRC-ohjelmien UTF-8-yhteensopivuus.

ChatZilla

Merkistö on valittavissa valikosta, ei automaattista tunnistusta.

Irssi 0.8.10rc4 ja vanhemmat

Ei lainkaan sisäänrakennettua merkistömuunnostukea. /set term_type utf8 tai /set term_type 8bit asetettava terminaalin tyypin mukaisesti. Jos asetus on väärin, ei esim. alhaalla oleva kirjoitusrivi toimi oikein. Merkistömuunnostuen saa scripteillä recode.pl ja recode_ion.pl tai pluginilla charconv. Älä asenna useampaa samanaikaisesti, yksi riittää.

Irssi 0.8.10rc5 ja rc6

Kehitysasteella oleva sisäinen recode-toiminto, jonka toimivuus ja ominaisuudet vaihtelevat eri versioissa. Tärkeimmät asetukset ovat /set term_charset <merkistö> (asettaa terminaalin käyttämän merkistön) ja /recode add <merkistö> (asettaa aktiivisessa ikkunassa käytettävän merkistön). Merkistöksi voi laittaa esim. "ISO-8859-1" tai "UTF-8". Älä käytä vanhempien versioiden recode/charconv-virityksiä tämän kanssa.

Irssi 0.8.10rc7

Suoraan toimiva sisäinen recode-toiminto. Ei normaalisti vaadi mitään säätöjä.

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

Tämä ei ole Linux-ohjelma, mutta kavereillasi sitä varmasti on käytössä ja he eivät pidä siitä kun kirjoitat UTF-8:a. Tarjoa heille siis tätä scriptiä [1], jonka avulla he näkevät kaikkien muiden tekstit oikein (autodetectointi) ja heidän kirjoittamansa teksti puolestaan näkyy muille kuten ennenkin. Tiedosto utf-8.mrc kopioidaan mIRC:in asennuskansioon ja sitten suoritetaan komento /load -rs utf-8.mrc, niin scripti alkaa toimimaan

Ohjelma keskustelee Windowsin kanssa silti jollain 8-bittisellä, joten erikoisemmat merkit eivät toimi. mIRCin tekijä on vuosia sitten luvannut korjata ongelman, mutta korjausta ei kuitenkaan ole kuulunut. Windowsille on muutenkin parempia ja ilmaisia clientejä, joten vaihtamista kannattaa harkita vakavasti.

Uusien, suoraan kehittäjältä saatujen tietojen mukaan seuraava mIRC-versio (eli nykyinen kehitysversio) osaisi näyttää UTF-8-tekstin suoraan riippumatta siitä, mitä se on säädetty lähettämään ulospäin. Tietoja tämän version julkaisuajankohdasta ei kuitenkaan tällä haavaa ole.

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.

Linkkejä