Gentoo Logo

UTF-8:n käyttö Gentoo-järjestelmässä

Sisällysluettelo:

1.  Merkistökoodaukset

Mitä merkistökoodauksella tarkoitetaan?

Tietokoneethan eivät ymmärrä tekstiä sinänsä. Sen sijaan ne käsittelevät merkkejä numeroina. Perinteisesti tapaa joilla numerot on yhdistetty aakkostoihin (eli merkistökoodausta, engl. character set encoding) on jouduttu rajoittamaan tietokoneiden laitteistorajoitteiden mukaan.

Merkistökoodausten historiaa

Yleisin (tai laajimmin hyväksytty) merkistökoodaus tunnetaan ASCIIna (engl. American Standard Code for Information Interchange). Moderni ASCII-järjestelmä standardoitiin 1986 (ANSI X3.4-, RFC 20-, ISO/IEC 646:1991- ja ECMA-6-standardit).

ASCII-järejstelmä on rajoitettu 7 bittiin merkkiä kohti, eli sen merkit esitetään desimaalinumeroilla 0:sta 127:ään. Näihin kuuluu 33 näkymätöntä ohjausmerkkiä, lukuarvoilla 0—31 ja 127 (joka on ␡ eli delete). Merkit 32—126 ovat näkyviä käyttömerkkejä: välilyönti, välimerkit ja latinalaiset aakkoset (a—z) sekä numerot.

ASCIIssa tavun kahdeksatta bittiä käytettiin alunperin ns. pariteettibittinä virheentarkastuksessa, tai jos tällaista ei tarvittu, se jätettiin väistämättä nollaksi. Joka tapauksessa, kaikki ASCII-koodaukset käyttivät yhden tavun jokaista merkkiä kohden.

Vaikka ASCII riitti hyvin moderniin englanninkieliseen käyttöön, on tietysti selvää ettei se ollut käytännöllinen edes muissa Eurooppalaisissa kielissä, joissa saattoi tarvita kummallisia pilkkuja aiden ja oiden päälle tai vaikkapa aksenttejakin. ISO 8859 -standardisarja kehitettiin korjaamaan tätä ongelmaa. Se oli taaksepäin yhteensopiva ASCIIn kanssa, mutta sen sijaan että kahdeksas bitti olisi ollut tyhjä, sitä käytettiin hyödyksi ja näin saatiin käyttöön 127 uutta merkkipaikkaa. Myös tämä oli rajoittunutta, ja jo Euroopan käyttöön kehitettiin 16 erilaista merkistökoodausta (vastaavasti ISO 8859-1:stä ISO 8859-16:een). ASCII-alueen ulkopuolella näiden koodausten merkit menivät päällekkäin, ja käyttivät siis keskenään eri merkkejä samoille lukuarvoille. Lisäksi soppaa tuli sotkemaan lopulta Microsoft Windows -järjestelmien Länsi-Eurooppalainen Windows-1252-koodaus, joka oli ISO 8859-1:n johdos, mutta kuitenkin erilainen. Kaikki nämä koodaukset kuitenkin olivat yhteensopivia ASCIIn kanssa.

Kielissä joissa käytetään jotain muita kuin latinalaista aakkostoa tarvittiin kokonaan erilaisia koodaustapoja, kuten EUC:tä (engl. Extended Unix Coding) japanissa ja koreassa (ja vähemmin kiinassakin). Tämä oli toki omiaan aiheuttamaan lisää sekaannusta, kun samat käyttöjärjestelmät käyttivät myös eri merkistökoodauksia samoille kielille, kuten Shift-JISsiä ja ISO-2022-JP:tä japanille. Kyrillisten kirjainten kanssa käyettiin joko KOI8-R-koodausta venäjälle ja bulgarialle sekä KOI8-U-koodausta ukrainalle tai vaikkapa huono-onnisempaa ISO 8859-5-koodausta, tai sitten Windowsin windows-1251-koodausta. Kaikki nämä koodaukset olivat jo täysin ristiriidassa ASCII-merkistön kanssa (vaikkapa KOI8 asetti kyrilliset merkit latinalaiseen aakkosjärjestykseen, joten ASCIIksi tulkittunakin KOI8 vaikutti englantilaisittain translitteroidulta tekstiltä).

Kaikki tämä on johtanut nyttemmin siihen, että monikielinen, aakkostojakin sotkeva, kommunikaatio netitse on parhaimmillaankin ongelmallista. Sittenpä yritetään siirtyä Unicodeen.

Mikä kumman unicode?

Unicode-järjestelmässä luovuttiin tavurajoituksista merkistökoodauksille. Siinä käytetään 17:ää 65 536:n merkin ”planea” joilla kuvataan 1 114 112 merkkiä. Ensimmäinen plane on nimeltään ”Basic Multilingual Plane” elikkä BMP, ja siihen kuuluu huomattava osa yleisimmin tarvituista merkeistä, joten useimmat luulevat Unicodea itse asiassa vain 16-bittiseksi kun se onkin vain pieni osa siitä.

Unicode-määritykset muunnetaan tietokoneiden merksitökoodeiksi useilla tavoilla, mutta eniten käytössä lienevät UTF (engl. Unicode Transformation Format) ja UCS (engl. Universal Character Set). Näiden aliluokissa UTF:n perään merkitään bittien määrä pienimmässä merkkiesityksessä ja UCS:n perään merkitään tavujen määrä kaikissa merkkiesityksissä. UTF-8 on ehkäpä laajimmin levinnyt tapa koodata Unicode-merkkejä, ehkäpä koska se on helpoiten yhteensopiva vanhojen 8-bittisten kanssa. Ja UTF-8 on myös tämän dokumentin keskeisin aihe.

UTF-8

UTF-8 koodaa merkit vaihtelevapituisiin jaksoihin, mikä tässä tapauksessa tarkoittaa, että se käyttää 1:stä 4:ään tavua merkkiä kohden. Yksitavuiset merkit koodaavat ASCII-merkkejä täysin alaspäin yhteensopivasti vanhan ASCII-merkistön kanssa. Tämän takia UTF-8:a ja ASCII:ta voi käyttää täysin sekaisin kun pysytään ASCII-merkistössä. Suuri osa Itä-Aasialaisten ei-latinalaisten merkistöjen käyttäjistä ei pidä UTF-8:aa hyvänä ratkaisuna, sillä useimmiten siitä aiheutuu jopa 50 %:n koon lisäys tekstidataan.

Mitä hyötyä UTF-8:sta on käyttäjälle?

UTF-8 mahdollistaa standardin omaiset kansainvälisesti toimivat käyttöympäristöt, suhteellisen pienellä vaivalla. UTF-8 olisi paras tapa käyttää ASCII-merkistön ulkopuolisia merkkejä netissä, meileissä, irkissä ja muuallakin, mutta siltikin monissa paikoissa UTF-8:aa ei vielä pidetä hyväksyttynä tapana. Kannattaa yleensäkin ottaa selvää sopiiko UTF-8:aa käyttää irkkikanavalla, meililistalla tai Usenetin nyyssiryhmässä ennen kuin ärsyttää ihmisiä sillä. Keskimäärin sanottakoon, että sekä suomalaisilla irkkikanavilla, että sfnetissä vielä vuonna 2005 on yleisehkö käytäntö UTF-8:aa vastaan pikemmin kuin sen puolesta.

2.  UTF-8:n käyttö Gentoossa

Sopivien UTF-8-localejen löytäminen

Nyt kun tiedossa on Unicode-järjestelmän perusteet, voidaan alkaa käyttämään UTF-8:aa järjestelmässä.

Esiehtona UTF-8:n käytölle on glibc käännettynä kielituin. Suositeltu tapa tehdä tämä on asettaa tiedosto /etc/locale.gen. Tässä dokumentissa ei kerrota enempää tästä prosessista, mutta se on hyvin dokumentoituna vaikkapa Gentoon paikallisasetusoppaassa.

Seuraavaksi pitää selvittää mikä UTF-8 locale on saatavilla suomeksi, vai pitääkö luoda uusi:

Koodilistaus 2.1: UTF-8 localen etsiminen

# locale -a | grep 'fi_FI'
fi_FI
fi_FI@euro
fi_FI.iso88591
fi_FI.iso885915@euro
fi_FI.UTF-8

Tästä tulosteesta voidaan helposti napata se kohta, jossa on pääte .UTF-8. Jollei mikään pääte muistuta merkkijonoa .UTF-8, pitää luoda uusi locale joka sisältää sen.

Huomaa: Seuraava kannattaa suorittaa vain jos UTF-8-lokaalia ei ole saatavilla.

Koodilistaus 2.2: UTF-8-localen luonti

# localedef -i fi_FI -f UTF-8 fi_FI.UTF-8

Toinen tapa luoda UTF-8-lokaali on lisätä se tiedostoon /etc/locale.gen ja suorittaa komento locale-gen.

Koodilistaus 2.3: /etc/locales.genin muokkaus

fi_FI.UTF-8 UTF-8
sv_FI.UTF-8 UTF-8
en_GB.UTF-8 UTF-8

Localen asettaminen

UTF-8-lokaalin käyttöön tarvitaan ainakin yksi muuttuja: LANG (tai vain LC_CTYPE). Sen voi myös asettaa monessa eri paikassa. Käyttäjäkohtaisesti asetetaan tiedostoon ~/.profile sh-kuorelle tai ~/.bash_profile tahi ~/.bashrc bash-kuorelle. Lisätietoja ja suosituksia löytyy paikallisasetusohjeista.

Toinen vaihtoehto on asettaa kaikille käyttäjille. Tämä on hyödyllistä esimerkiksi /etc/init.d/xdm-skriptiä varten, koska kirjautumisohjelma käynnistyy ilman edellä mainittuja käyttäjäkohtaisia asetuksia.

Järjestelmänlaajuisen locale-asetuksen voi tehdä tiedostoon /etc/env.d/02locale. Sisällöksi tulee jotain seuraavankaltaista:

Koodilistaus 2.4: /etc/env.d/02locale

LANG="fi_FI.UTF-8"

Huomaa: LANGin sijaan voi käyttää LC_CTYPEä. Tämä korvaa myös LANGin asetukset kaikissa tapauksissa. Lisätietoja löytyy ohjeesta GNU libc locale page.

Ympäristömuutokset pitää sitten yhdistää käytettäviksi:

Koodilistaus 2.5: Ympäristön päivittäminen

# env-update
>>> Regenerating /etc/ld.so.cache...
 * Caching service dependencies ...
# source /etc/profile

Komennolla locale nähdään ympäristössä toimivat muuttujat:

Koodilistaus 2.6: Locale-muuttujien tarkastelu

$ locale
LANG=fi_FI.UTF-8
LC_CTYPE="fi_FI.UTF-8"
LC_NUMERIC="fi_FI.UTF-8"
LC_TIME="fi_FI.UTF-8"
LC_COLLATE="fi_FI.UTF-8"
LC_MONETARY="fi_FI.UTF-8"
LC_MESSAGES="fi_FI.UTF-8"
LC_PAPER="fi_FI.UTF-8"
LC_NAME="fi_FI.UTF-8"
LC_ADDRESS="fi_FI.UTF-8"
LC_TELEPHONE="fi_FI.UTF-8"
LC_MEASUREMENT="fi_FI.UTF-8"
LC_IDENTIFICATION="fi_FI.UTF-8"
LC_ALL=

Nyt järjestelmän locale-asetusten pitäisi olla UTF-8-kunnossa, seuraavaksi säädetään ohjelmat toimimaan sen kanssa.

3.  Ohjelmistotuki

Unicoden alkuaikoina, monitavuiset merkistökoodaukset eivät toimineet hyvin C:n tyyppisissä ohjelmointikielissä, joita suuri osa tavallisimmista ohjelmista käytti. Nykyäänkään kaikki ohjelmat eivät osaa UTF-8:aa ihan täydellisesti, onneksi valtaosa kuitenkin hallitsee jo sen.

Tiedostonimet, NTFS ja FAT

Kernelissä on useita NLS-valintoja, mutta niistä ei pidä hämääntyä! Enimmikseen pärjää, kun lisää UTF-8:n NLS-tukiin ja asettaa oletus-NLS:ksi utf8.

Koodilistaus 3.1: Kernelin asetukset UTF-8-tuelle

File Systems -->
  Native Language Support -->
    (utf8) Default NLS Option
    <*> NLS UTF8
    (Also <*> other character sets that are in use in
    your FAT filesystems or Joilet CD-ROMs.)

Jos käytetään NTFS-osioita, saattaa niille olla tarpeen antaa optio nls= liittämisen yhteydessä. FAT-osioille codepage=-asetus on tarpeen. FATin oletuskoodisivun voi asettaa ytimen asetuksissa.

Koodilistaus 3.2: FAT-asetusten teko ytimen asetuksiin

File Systems -->
  DOS/FAT/NT Filesystems  -->
    (850) Default codepage for fat 850 on yleisin suomelle

Asetusta Default iocharset for fat ei kannata laittaa UTF-8:ksi. Sen sijaan, jos FAT-osio on UTF-8-muodossa mountille kannattaa antaa utf=true-asetus. Lisätietoja löytää mountin ohjesivulta: man mount ja ytimen dokumenteista: /usr/src/linux/Documentation/filesystems/vfat.txt.

Tiedostonimien koodauksen muuttamisessa app-text/convmv voi osoittautua näppäräksi.

Koodilistaus 3.3: Esimerkki convmv:n käytöstä

# emerge app-text/convmv
(Komennon muoto)
# convmv -f <koodaus> -t utf-8 <tiedosto>
(Merkitse iso-8859-1 alkuperäiskoodaukseksi)
# convmv -f iso-8859-1 -t utf-8 filename

Tiedostojen sisältöä muutetaan vastaavasti vaikkapa iconv-sovellukella, joka tulee glibc:n mukana.

Koodilistaus 3.4: Esimerkki iconvin käytöstä

(vaihda iso-8859-1 miksi koodaukseksi tahansa haluatkin)
(Tarkasta tuloste virheiltä)
# iconv -f iso-8859-1 -t utf-8 filename
(Tuloste pitää tehdä ensin uuteen tiedostoon)
# iconv -f iso-8859-1 -t utf-8 filename > newfile

app-text/recodea voi myös käyttää tähän hommaan.

Konsoli

Tärkeää: Unicode toimii konsolilla vain sys-apps/baselayout-1.11.9:llä tai uudemmilla.

UTF-8-tuki saadaan konsolille asettamalla tiedostoon /etc/rc.conf UNICODE="yes", ja lukemalla muukin osa tiedostosta tarkkaan. Oikean fontin valinta on tärkeää Unicoden käytölle. Tämä ei toimi, jollei saatavilla ole Unicode-lokaalia, kuten on kuvattu ensimmäisessä kappaleessa.

Tiedoston /etc/conf.d/keymaps asetuksessa KEYMAP pitäisi olla Unicode-näppäimistökartta asetettuna.

Koodilistaus 3.5: /etc/conf.d/keymapsin muokkaus

KEYMAP="fi-latin9"

Ncurses ja Slang

Huomaa: Ohita Slang tässä osiossa jollet käytä sitä tai tarvitse sitä.

Unicode on hyvä lisätä /etc/portage/make.confin USE-flägeihin, ja asentaa (uudelleen) sys-libs/ncurses ja sys-libs/slang jos tarpeellista, Portage tekee tämän seuraavan päivityksen yhteydessä:

Koodilistaus 3.6: Järjestelmän päivittäminen

# emerge --update --deep --newuse world

Tämän jälkeen pitää myös uudelleenasentaa ohjelmat jotka käyttävät näitä kirjastoja, jotta USE-muutokset tulevat käytetyiksi. Tähän tarkoitukseen on käytettävissä revdep-rebuild-työkalu, joka on osa gentoolkit-pakettia.

Koodilistaus 3.7: Ncursesia ja slangia käyttävien ohjelmien uudelleenasentaminen

# revdep-rebuild --soname libncurses.so.5
# revdep-rebuild --soname libslang.so.1

KDE, GNOME ja Xfce

Kaikki suuremmista työpöytäympäristöistä tukevat Unicodea täysin, eivätkä tarvitse enempiä asetuksia kuin mitä on jo annettu. Tämä seuraa siitä, että graafisten ympäristöjen ohjelmointikirjastot (Qt ja GTK+2) ovat UTF-8-yhteensopivia. Samoin kaikki Qt- ja Gtk+2-pohjaiset sovellukset tukevat nyt UTF-8:aa suoraan.

Poikkeuksena tulevat Xlibin ja GTK+1:n päälle rakennetut ohjelmat. GTK+1 tarvitsee iso-10646-1-fontin FontSpec-tyyppisenä määrityksenä tiedostoon ~/.gtkrc, kuten esimerkiksi: -misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1. Xlibiä ja Xawia käyttävät sovellukset tarvinnevat vastaavan asetuksen omiin asetuksiinsa, muutoin ne eivät välttämättä toimi.

Huomaa: Jos koneella on Gnome 1:n control center -sovellus, sitä voi käyttää fontin muuttamiseen huomattavasti helpommin: tarvitsee vain valita iso10646-1 listasta.

Koodilistaus 3.8: Unicode-fontin lisäys ~/.gtkrc:hen (GTK+1:ä varten)

style "user-font"
{
    fontset="-misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1"
}
widget_class "*" style "user-font"

Jos sovelluksessa on sekä Qt että GTK+2 -tuet, GTK+2-tuki antaa paremman lopputuloksen Unicoden kanssa.

X11 ja fontit

Truetype-fonteissa on sinänsä jo tuki Unicodelle, ja useimmisa Xorgin mukana tulevissa fonteissa on suhteellisen kattava valikoima. Tietenkään kaikkia Unicoden merkkejä ei ole helposti käsillä perusfonteissa. Joihinkin fontteihin (mukaanlukien Bitstream Verat) tuen Itä-Aasialaisiin merkistöihin X:ll saa asettamalla cjk-USE-flägin. Monet ohjelmistotkin käyttävät tätä flägiä, joten saattaa olla kannatavaa merkitä se yleisiin USE-asetuksiin, jos sitä tarvitsee.

Useat fonttipaketit Portagessa sisältävät Unicodea:

Koodilistaus 3.9: Vaihtoehtoista: muiden Unicode-fonttien asennus

# emerge terminus-font intlfonts freefonts corefonts

Ikkunointimanagerit ja terminaaliemulaattorit

Myös ikkunointimanagerit jotka eivät pohjaudu GTK:hon tai Qt:hen sisältävät hyvän Unicode-tuen, ja usein käyttävät Xft-kirjastoa fonttien käsittelyyn. Ne ikkunointimanagerit, jotka eivät käytä Xft:tä, saattavat silti toimia aiemmin mainituilla FontSpec-asetuksilla Unicode-fonteille.

Terminaaliemulaattoreit Xft-tuella ja Unicode-tuella on hieman hankalampi löytää. Konsolen ja gnome-terminalin lisäksi hyviä valintoja Portagessa ovat x11-terms/rxvt-unicode, x11-terms/xfce4-terminal, app-gnustep/terminal, x11-terms/mlterm, x11-terms/mrxvt tai vanha kunnon x11-terms/xterm unicode-USE-flägillä varustettuna. Xterm saattaa pitää käynnistää komennolla uxterm. app-misc/screen tukee myös UTF-8:aa: screen -U käynnistää UTF-8-tilan, tai sen voi myös lisätä asetustiedostoon ~/.screenrc:

Koodilistaus 3.10: ~/.screenrc:n asettaminen UTF-8:aa varten

defutf8 on

Vim, Emacs, Xemacs ja Nano

Vim sisältää täyden UTF-8-tuen, ja pystyy automaattisesti tunnistamaan jotkin UTF-8-tiedostot. Vimin UTF-8-tuesta saa lisätietoa komennolla :help mbyte.txt.

Emacsin versiot 23 ja uudemmat sekä XEmacsin versiot 21.5 ja uudemmat sisältävät myös täyden UTF-8-tuen. Emacsin versiot 24:stä eteenpäin sisältävät tuen myös oikealta-vasemmalle kirjoittaville järjestelmille.

Nanossa on ollut UTF-8-tuki versiosta 1.3.6 lähtien.

Shellit

Nykyisin bash sisältää täyden Unicode-tuen GNUn readline-kirjaston kautta. Z shelliin (zsh) tuen saa unicode-USE-asetuksella.

C shellissä, tcsh:ssa ja ksh:ssa ei ole mitään UTF-8-tukea tällä hetkellä.

Irssi

Irssi tukee UTF-8:aa täysin nykyään, tosin se vaatii erillisen asetuksen:

Koodilistaus 3.11: UTF-8-tuen lisääminen irssiin

/set term_charset UTF-8

Kanavilla joissa käytetään monia merkistöjä, /recode-komento auttaa merkkimuunnoksissa. Lisätietoa tästä saa komennolla /help recode.

Mutt

Muttissa on hyvä Unicode-tuki. UTF-8 toimii, kunhan kaikki asetustiedostot, allekirjoitukset mukaanluettuina, ovat UTF-8-koodattuja.

Huomaa: Tämänkin jälkeen meileissä saattaa esiintyä ?:jä, ja se yleensä johtuu jonkin vanhemman Latin-merkistön (ISO 8859) käytöstä. Saattaa olla kannattavaa opastaa muita käyttämään UTF-8-postituksia ja osoittaa heille IETF RFC 2277 luettavaksi (viiteluettelo on dokumentin lopussa). Huomaa kuitenkin, että erityisesti monilla postituslistoilla UTF-8 ei ole hyväksytty vaihtoehto. Kannattaa siis aina etukäteen varmistaa sopiva merkistökoodaus postituksiin ennen kuin käyttää UTF-8:aa.

Lisätietoa aiheesta on Mutt WikiWikissä.

Man

Ohjesivut ovat Linuxin keskeinen osa. Niissä olevat unicode-merkit saa toimimaan oikein korjaamalla /etc/man.confissa seuraavan asetuksen:

Koodilistaus 3.12: Man.confin asettaminen

(Oletusasetus)
NROFF           /usr/bin/nroff -Tascii -c -mandoc
(Toimiva versio)
NROFF           /usr/bin/nroff -mandoc -c

Elinks ja links

Nämä ovat yleisimpiä tekstipohjaisia selaimia, ja niihin pystyy asettamaan UTF-8-tuen. Elinksin ja linksin asetukset voi tehdä monellakin tapaa, vaikkapa Setup-valikosta tai suoraan asetustiedostosta. Selaimen asetuvalikkoon pääsee vaikkapa painamalla Alt+S Setup-valikkoa varten ja sitten T Terminal-kohtaa varten. Luettelossa on valinta UTF-8 I/O, joka hyväksytään painamalla Enteriä. Sitten tallennetaan ja poistutaan valikosta. Linksissä voi joutua toistamaan vielä sarjan Alt+S ja S tallentaakseen asetukset. Asetustiedoston muutokset ovat alla:

Koodilistaus 3.13: UTF-8-tuen asettaminen elinksille tai linksille

(Elinksin asetukset ovat /etc/elinks/elinks.conf tai
~/.elinks/elinks.conf, niihin lisätään seuraavaa)
set terminal.linux.utf_8_io = 1

(Linksin asetukset ovat tiedostossa ~/.links/links.cfg, niihin lisätään
seuraava rivi)
terminal "xterm" 0 1 0 us-ascii utf-8

Samba

Samba on ohjelmisto SMB-protokollaan UNIXeilla. Protokolla tunnetaan myös Common Internet File Systeminä eli CIFSinä. Sambaan kuuluu myös NetBIOS, jota käytetään Windowsin tiedostonjakoon.

Koodilistaus 3.14: Samban UTF-8-asetukset

(Muokkaa tiedostoa /etc/samba/smb.conf ja lisää nämä [global]-osaan)
dos charset = 1255
unix charset = UTF-8
display charset = UTF-8

Testaaminen

Netissä on lukuisia UTF-8-testisivustoja. net-www/w3m, net-www/links, net-www/elinks, net-www/lynx ja Mozilla-pohjaiset selaimet tukevat UTF-8:aa, kuten Konqueror ja Operakin.

Tekstipohjaisissa selaimissa tulee kuitenkin varmistaa, että myös terminaali on Unicode-yhteensopiva.

Jos jotkin merkeistä näkyvät laatikkoina, joissa on ehkä numeroita ja kirjaimia sisällä, se tarkoittaa, että fonteista puuttuu vastaava merkki, ja laatikossa on merkin UTF-8-koodi.

Tekstinsyöttö

Kuolleet näppäimet (engl. dead keys) auttavat joidenkin merkkien muodostamista näppäimistöltä. Nämä toimivat niin, että näppäimistöltä syötetään jokin kuolleista merkeistä, kuten suomalaisen standardinäppäimistön enterin ja backspacen vasemmalla puolella olevat merkit, ja perään jokin aakkosnumeerinen merkki, niin alussa syötetty merkki muuttaa jäljempänä syötetyn. Näin voidaan lisätä vaikkapa aksentteja latinalaisiin aakkosiin tai kirjoittaa potenssiin korotettuja numeroita Unicode-tyyliin.

Kuolleiden näppäinten toiminta riippuu käytetystä näppäinkartoista. Useimmissa eurooppalaisissa ne ovat oletusarvoisesti mukana. Pohjois-Amerikkalaisissahan näitä ei kuitenkaan ole. Helpoiten tämän saa kuitenkin amerikanenglantilaiseen näppäinkarttaan käyttämällä en_US-karttaa us-kartan asemesta, esimerkiksi /etc/X11/xorg.confissa.

Koodilistaus 3.15: /etc/X11/xorg.conf

Section "InputDevice"
    Identifier "Keyboard0"
    Driver     "kbd"
    Option     "XkbLayout" "fi"
    (Muita Xkb-asetuksia tarvittaessa)
EndSection

Tämä muutos tulee voimaan X:n uudelleenkäynnistyksessä. Sen voi myös ottaa käyttöön heti setxkbmap-komennolla: setxkbmap fi.

Tässä vielä muutamia esimerkkejä kuolleista näppäimistä. Vaikka nämä vaihtelevatkin eri näppäinasetuksilla, käytäntö on yleensä sama.

Painamalla ensin backspacen vasemmalla puolella olevaa kuollutta akuuttia korkomerkkiä ´ ja sitten aata, saadaan á. Painamalla samaa merkkiä ´ ja eetä saadaan vastaavasti é. Shiftillä saadaan gravis-korkkomerkki ̀ ja sen voi yhdistää vastaavasti vaikka oohon ò.

Painamalla AltGr ja backspacen vasemmalla puolella olevaa aksenttinäppäintä saadaan kuollut sedilji ¸ , jota voi käyttää vaikkapa ranskassa: ç. Jos samaa kuollutta näppäintä paina kahdesti, tai yhdistää välilyöntiin, saa aikaan pelkän aksentin tai tarkkeen, kuten akuutit ja gravikset edellä, kannattaa kuitenkin huomata, että tällaisia merkkejä ei yleensä käytetä tekstissä vaikka ne näyttäisivät samalta kuin jokin muu symboli, esimerkiksi kaksi aksenttia ei korvaa lainausmerkkiä eikä ruotsalaisen åån rengas sovi astemerkiksi.

Myös AltGr:n avulla saadaan aikaan hyvin paljon merkkejä, esimerkiksi suomalaisessa näppäimistössä hattu-s š tulee AltGr+s yhdistelmästä, ja hattu-z ž vastaavasti AltGr+z. Äng-äänteen merkki ŋ on geen alla ja mikron myy µ on ämmässä. Euron merkin € saa AltGr+e:stä tai AltGr+5:stä, joihin ne uusissa näppäimistöissä on merkittykin.

Viitteitä

4.  Tunnetut ongelmat

Järjestelmäasetustiedostot hakemistossa /etc

Monetkaan järjestelmäasetustiedstoista, kuten /etc/fstab, eivät tue UTF-8-sisältöä, vaan pitää käyttää ääkkösvapaata ASCII-yhteensopivaa merkistöosajoukkoa.



Tulostettava muoto

Tämä sivu on viimeksi päivitetty 29. joulukuuta 2012

Tätä käännöstä ei enää ylläpidetä

Tiivistelmä: Tässä oppaassa kerrotaan kuinka UTF-8-merkistökoodaus asetataan käytettäväksi Gentoo-järjestelmään. Lisäksi kerrotaan jotain yleistä tietoa Unicoden ja erityisesti UTF-8:n hyödyistä.

Thomas Martin
Tekijä

Alexander Simonov
Avustaja

Shyam Mani
Muokkaaja

Joshua Saddler
Muokkaaja

Flammie Pirinen
Vastuullinen kääntäjä

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.