Gentoo Logo

UTF-8 használata Gentoo alatt

Tartalom:

1.  Karakterkódolások

Mi az a karakterkódolás?

A számítógépek nem értik meg a szöveget önmagukban, inkább számokat használnak a karakterek ábrázolására. Hagyományosan, az összes korábban betűk és karakterek ábrázolására használt számhalmaz (ezeket kódolási rendszernek, kódolásnak vagy karakterkészletnek nevezzük) mérete korlátozva volt a számítógépek hardvere miatt.

A karakterkódolások történelme

A legelterjedtebb (de legalábbis a legjobban elfogadott) karakterkészlet az ASCII (American Standard Code for Information Interchange). Széles körben azt tartják, hogy az ASCII a legsikeresebb szoftverszabvány. A mai ASCII 1986-ban lett szabványosítva (ANSI X3.4, RFC 20, ISO/IEC 646:1991, ECMA-6) az Amerikai Nemzeti Szabványügyi Hivatal által.

Az ASCII szigorúan 7 bites, ami azt jelenti, hogy 7 biten ábrázolható bitsorozatokat használ. Ez 0 és decimális 127 közötti értékek ábrázolását teszi lehetővé. Ebből 32 nem látható vezérlőkarakter, a legtöbbjük 0 és 31 között található, a végjel karakterrel, a DEL vagy törlés a 127-es. 32 és 126 közötti karakterek láthatóak: a szóköz, írásjelek, Latin betűk és számok.

A 8. bitet az ASCII-ban eredetileg paritásbitként használták hibaellenőrzéshez. Ha ez nem kívánatos, értéke 0. Ez azt jelenti, hogy az ASCII-val minden karakter egy byte-on ábrázolható.

Habár az ASCII elegendő volt az angol nyelven folyó kommunikációhoz, más ékezetes európai nyelveken a dolgok nem voltak ilyen egyszerűek. Ezen próbáltak segíteni az ISO 8859-es szabványok, melyek kompatibilisek maradtak az ASCII-vel, de az üresen hagyott 8. bitet, kódolásonként további 127 karakter ábrázolására használták. Hamarosan kiderültek az ISO8859-es szabványok korlátai is. Jelenleg 15 változata van az ISO 8859-es szabványnak (8859-1-estől a 8859-15-ösig ). Az ASCII-kompatilibis byte-tartományukon kívül, gyakran ütköznek a byte-ok által képviselt betűk ezekben a karakterkészletben. A Microsoft Windows némely verziója a Windows-1252-t használta a Nyugat-Európai nyelvekhez, még jobban megnehezítve ezzel a karakterkódolások közötti együttműködést. Ez az ISO 8859-1 kibővítése, de számos dologban eltér attól. Ennek ellenére mindegyik megőrizte az ASCII kompatibilitást.

A nem latin ábécék számára szükségszerűen kifejlesztett teljesen eltérő egy byte-os kódolás, mint az EUC (Extended Unix Coding), amelyet a japán és a koreai (ill. kismértékben a kínai) nyelvekhez használtak, tovább fokozták a zűrzavart. Ezalatt egyes operációs rendszerek még mindig eltérő karakterkészletet használtak ugyanahhoz a nyelvhez, például a Shift-JIS és az ISO-2022-JP. Azoknak a felhasználóknak akik cirill írásjeleket szerettek volna megjeleníteni, választaniuk kellett a KOI8-R amely az orosz és a bulgár nyelvekhez ill. a KOI8-U amely az ukránhoz, valamint a sikertelen ISO 8859-5 és a közös Windows-1251 készletek között. Ezek a karakterkészletek már csak nyomokban voltak ASCII kompatibilisek (habár a KOI8 kódolások a cirill karaktereket a latin ábécé sorrendjében tartalmazták, így a 8. bit figyelmen kívül hagyásával a szöveg olvasható volt egy ASCII terminálokon, igaz hogy a kis és a nagybetűk fel voltak cserélve).

Mindez zűrzavarhoz vezetett és szinte teljesen ellehetetlenítette a többnyelvű kommunikációt, különösen eltérő ábécével rendelkező nyelvek között. Jöhet a Unicode!

Mi az a Unicode?

A Unicode szakít a karakterkészletek egy byte-os méretkorlátbeli hagyományával. 17 darab "síkot" használ amelyek egyenként 65,536 kódot tartalmaznak a maximálisan elérhető 1,114,112 karakter leírásához. Mivel az első sík, ismertebb nevén "Basic Multilingual Plane" vagy BMP tartalmaz mindent amire valaha szükség lehet, sokan azt a téves következtetést vonták le, hogy a Unicode egy 16 bites karakterkészlet.

A Unicode többféle megjelenítési módjai közül a legelterjedtebb az UTF (Unicode Transformation Format) és a UCS (Universal Character Set). A rövidítés utáni szám az UTF esetében bitben, míg az UCS-nék byte-ban adja meg az egység méretét. Az UTF-8-ról szól ez az írás, amely tisztán 8 bites voltának köszönhetően a Unicode-os szövegekkel történő információcsere legelterjedtebb eszközévé vált.

Az UTF-8

Az UTF-8 egy változó hosszúságú karakterkódolás, amely ebben az esetben azt jelenti, hogy egy-egy szimbólumot 1-4 byte jelöl. Az első UTF-8 byte az ASCII kódolására szolgál, teljesen ASCII kompatibilissé téve a karakterkészletet. Ez azt jelenti, hogy az ASCII és a latin karakterek átalakíthatóak úgy, hogy az adatok mérete csak kis mértékben növekedjen. A keleti ábécék használói számára nem ilyen rózsás a helyzet, mivel az ő karaktereik magasabb tartományba kerültek és ez 50%-os redundanciát eredményez az adataikban.

Mire jó az UTF-8?

Az UTF-8 segítségével egy a szabványoknak teljesen megfelelő és nemzetközileg elfogadott többnyelvű környezetben dolgozhatsz, viszonylag kevés ismétlődő adattal. Az UTF-8 az ajánlott módja nem ASCII karakterek továbbításának az Interneten, emailben, IRC-n és szinte minden egyéb médián. Ennek ellenére sok ember sértésnek veszi az UTF-8-at az online kommunikációban. A legjobb ha először mindig tájékozódunk az adott csatornán, levelező listán vagy Usenet csoporton arról, hogy hogyan viszonyulnak az UTF-8-hoz, mielőtt nem ASCII UTF-8-at kezdünk el ott használni.

2.  Az UTF-8 beállítása Gentoo Linux alatt

Az UTF-8 lokálok megkeresése vagy előállítása

Most, hogy megismerted a Unicode mögötti elveket, készen állsz arra, hogy használni kezdjed az UTF-8-at a saját gépeden.

Az UTF-8 alapfeltétele, hogy olyan glibc verzió legyen telepítve amely már támogatja a lokalizációt. Ennek beállítása a /etc/locale.gen állományban lehetséges. A fájl használatának részletes ismertetése meghaladná ennek a leírásnak a kereteit. Bővebben a Gentoo Linux honosítási útmutató-ban olvashatsz róla.

Következő lépésként ki kell derítenünk, hogy létezik-e a nyelvünkhöz UTF-8 lokál vagy készítenünk kell egyet.

Kódlista 2.1: Létező UTF-8 lokál keresése

(A "hu_HU" helyére írd be a kívánt lokál beállításodat)
# locale -a | grep 'hu_HU'
hu_HU
hu_HU.UTF-8

A parancs kimenetében az .UTF-8-ra végződő sort kell keresnünk. Ha nem látunk ilyet, akkor készítenünk kell egy UTF-8 kompatilibis lokált.

Megjegyzés: A következő parancsokat csak abban az esetben hajtsd végre, ha nincs még beállítva a nyelvedhez UTF-8 lokál.

Kódlista 2.2: UTF-8 lokál készítése

(A "hu_HU"-t cseréld ki a kívánt lokálra)
# localedef -i hu_HU -f UTF-8 hu_HU.UTF-8

A lokál hozzáadásának másik módja az, ha beleírjuk a /etc/locale.gen file-ba és kiadjuk a locale-gen parancsot, amely előállítja a szükséges lokálokat.

Kódlista 2.3: A szükséges sor a /etc/locale.gen állományban

hu_HU.UTF-8 UTF-8

A lokál beállítása

Az új UTF-8 lokál használatához be kell állítani a LANG környezeti változót, (ez felülbírálható az LC_ALL beállításával is). A változó beállítására több lehetőség is van. Néhányan inkább csak egy felhasználó számára szeretnének beállítani UTF-8 környezetet, ebben az esetben a ~/.profile (ha /bin/sh-t használsz), ~/.bash_profile vagy ~/.bashrc (ha /bin/bash-t használsz) állományokban kell a beállítást elvégezni.

Mások inkább globálisan állítják be a lokált. Ezt a szerző abban a speciális esetben amikor az /etc/init.d/xdm-et használjuk különösen javasolja, mivel ez az initszkript a fent említett shellek beállításainak a feldolgozása előtt indítja el az ablakkezelőt, még mielőtt bármelyik környezeti változó értéket kapna.

A lokál globális beállítása az /etc/env.d/02locale állományban tehető meg. A tartalma ilyesmi:

Kódlista 2.4: Az /etc/env.d/02locale

(Mint mindig, a "hu_HU.UTF-8" helyett a saját lokálodat kell írnod)

LANG="hu_HU.UTF-8"

Megjegyzés: LANG helyett LC_ALL-t is írhatsz, amellyel a lokálod minden kategóriára érvényes lesz, beleértve a számok és a pénzek megjelenítését is. Néhány ritka esetben azonban ez gondokat okozhat. Azonban a legtöbb felhasználó nem fog problémába ütközni az LC_ALL használatakor. Arról, hogy az LC_ALL beállításai milyen kategóriákra vannak hatással, részletesen olvashatsz a GNU lokál oldalon.

Következő lépésként érvénybe kell léptetni a környezeti változók értékének a változtatását.

Kódlista 2.5: A környezet frissítése

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

A paraméter nélküli locale paranccsal ellenőrizheted a környezeti változók értékének helyességét:

Kódlista 2.6: Az új lokál ellenőrzése

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

Ez minden. Most már UTF-8 lokálokat használsz. A következő akadály azoknak a programoknak a beállítása amelyeket naponta használsz.

3.  Alkalmazások támogatása

Amikor a Unicode először a szoftvervilág figyelmébe került, a több-byte-os karakterkészletek még nem nagyon voltak alkalmasak a programnyelvek pl. a C számára, amelyekben a leggyakrabban használt programok készültek. Még most is vannak olyan programok amelyek nem kezelik rendesen az UTF-8-at. Szerencsére a legtöbb program már igen!

Fájlnevek, NTFS és FAT

Fontos, hogy ne vesszünk el a Linux kernel beállításaiban található NLS opciók között! Többnyire elég az UTF-8 NLS támogatást a kernelbe fordítani és átállítani az alapértelmezett NLS opciót utf8-ra.

Kódlista 3.1: A kernel beállítása UTF-8-as NLS-re

File Systems -->
  Native Language Support -->
    (utf8) Default NLS Option
    <*> NLS UTF8
    (Jelöld be <*> a többi karakterkészletet is amelyeket a 
FAT fájlrendszereden vagy Joilet CD-ROM-jaidon használsz.)

Amennyiben NTFS particiókat is szeretnél majd csatolni a rendszerhez, a mount parancsnak az nls= opciót is meg kell majd adnod. FAT particiók esetében pedig a codepage= opciót. Ha akarod, a kernelben beállíthatsz egy alapértelmezett kódlapot a FAT számára. Ne feledd, hogy a mountnál megadott codepage opció felülbírálja a kernelben beállítottat!

Kódlista 3.2: A FAT beállítása a kernelben

File Systems -->
  DOS/FAT/NT Filesystems  -->
    (437) Default codepage for fat

Nem tanácsos a Default iocharset for fat értékét UTF-8-ra állítani. Helyette inkább az utf8=true opciót add meg amikor a FAT partíciókat a rendszerbe csatolod. További információkért add ki a man mount parancsot vagy fordulj a kernel leírásához a /usr/src/linux/Documentation/filesystems/vfat.txt szöveges állományban.

A fájlnevek kódolásának megváltoztatásához a app-text/convmv használható.

Kódlista 3.3: Példa a convmv használatára

# emerge --ask app-text/convmv
(A parancs alakja)
# convmv -f <current-encoding> -t utf-8 <filename>
(Az iso-8859-2 helyére azt a karakterkészletet kell írnod amelyről 
konvertálsz)
# convmv -f iso-8859-2 -t utf-8 fájlnév

A fájlok tartalmának átkódolására az iconv segédprogram szolgál, amely a glibc része:

Kódlista 3.4: Példa az iconv használata

(Az iso-8859-2 helyére azt a karakterkészletet kell írnod amelyről konvertálsz)
(Az eredmény ellenőrzése)
# iconv -f iso-8859-2 -t utf-8 fájlnév 
(A konvertáláshoz a kimenetet át kell irányítani egy új állományba)
# iconv -f iso-8859-2 -t utf-8 fájlnév > újfájl

A app-text/recode szintét használható ilyen céllal.

A konzol

Fontos: Ahhoz, hogy Unicode-ot tudj használni a konzolon, a >=sys-apps/baselayout-1.11.9-ra van szükséged.

Az UTF-8 engedélyezéséhez az /etc/rc.conf állományba a UNICODE="yes" sort kell írnod. Olvasd el a megjegyzéseket is ebben a fájlban -- ahhoz, hogy a legtöbbet tudd kihozni a Unicode-ból, fontos, hogy olyan betűtípust használj amely a lehető legtöbb karaktert tartalmazza.

A /etc/conf.d/keymaps állományban beállított KEYMAP változónak egy Unicode billentyűzet kiosztást kell tartalmaznia.

Kódlista 3.5: Példa /etc/conf.d/keymaps részlet

(A "hu" helyett a saját helyi kiosztásodat írd)
KEYMAP="hu"

Ncurses és Slang

Megjegyzés: Ha nincs telepítve a gépeden a Slang vagy nem használod, hagyd figyelmen kívül a Slang-ról szóló részeket a következő fejezetben.

Bölcs dolog ha hozzáadod a unicode-ot a globális USE flagekhez a /etc/make.conf állományban, aztán újraemerge-elned a sys-libs/ncurses-t és a sys-libs/slang-ot. A portage automatikusan elvégzi ezt amikor a rendszeredet frissíted:

Kódlista 3.6: A rendszer frissítése

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

Miután a USE flagben történt változtatásunk életbe lépett, újra kell fordítani azokat a csomagot amelyek használják a fenti két lib valamelyikét. Az erre szolgáló segédprogram (revdep-rebuild) a gentoolkit csomag része.

Kódlista 3.7: Ncurses-t vagy slang-ot használó programok újrafordítása

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

KDE, GNOME és Xfce

A főbb asztali környezetek teljes mértékben támogatják a Unicode-ot és csak annyi beállítást igényelnek amit ebben a leírásban találsz. Ez annak köszönhető, hogy azok a grafikus eszközök (a Qt és GTK+2) amelyekre ezek épülnek, már ismerik az UTF-8-at. Következésképpen, azok az alkalmazások amelyek ezeket használják alapból kezelik az UTF-8-at.

Az Xlib és a GTK+1 kivétel a fenti szabály alól. A GTK+1-nek be kell állítanunk egy iso-10646-1 FontSpec-et a ~/.gtkrc állományban, például a -misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1. Továbbá azoknak az alkalmazásoknak is hasonló FontSpec-et kell beállítanod amelyek az Xlib-et vagy az Xaw-ot használják, különben nem fognak működni.

Megjegyzés: Ha rendelkezel valamelyik gnome1 vezérlőközponttal, inkább azt használd a beállításhoz. Válaszd ki valamelyik iso10646-1-es betűtípust benne.

Kódlista 3.8: Példa ~/.gtkrc (GTK+1-hez) állomány, amely egy Unicode kompatilibis betűtípust ad meg

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

Ha egy alkalmazás egyaránt támogatja a Qt-t és a GTK+2 GUI-t, a GTK+2 GUI általában jobb eredményt nyújt a Unicode-dal.

Betűtípusok X11 alatt

Fontos: Az x11-base/xorg-x11 messze jobban támogatja a Unicode mint az XFree86, ezért ennek használata erősen ajánlott.

A TrueType betűtípusok támogatják a Unicode-ot és a legtöbb Xorg-ban található betűtípus lenyűgöző karaktertámogatással rendelkezik, habár, szemlátomást, nem minden a Unicode-ban elérhető karakterhez van megjeleníthető betű. Ahhoz, hogy kelet ázsiai betűtípusokat tudj használni az X-szel (beleértve a Bitsream Vera típust is), győződj meg arról, hogy a cjk USE flag be van állítva. Sok más programra is hatással van ez a flag, ezért érdemes tartósan beálítani.

Továbbá a Portage-ben található jó néhány betűtípus csomag is támogatja a Unicode-ot.

Kódlista 3.9: Nem kötelező: További Unicode betűtípusok telepítése

# emerge terminus-font intlfonts freefonts cronyx-fonts corefonts

Ablakkezelők és terminál emulátorok

A nem GTK és Qt alapú ablakkezelők általában elég jó Unicode támogatással rendelkeznek, mivel gyakran az Xft programkönyvtárat használják a betűtípusok kezelésére. Ha az ablakkezelőd nem az Xft-t használja, még mindig beállíthatod az előző részben taglalt FontSpec-et Unicode-ra.

Nagyon ritka az olyan terminál emulátor amely Xft-t használ és támogatja a Unicode-ot. A Konsole és a gnome-terminal mellett a legjobb választás a Portage-ben a x11-terms/rxvt-unicode, xfce-extra/terminal, gnustep-apps/terminal, x11-terms/mlterm vagy a sima x11-terms/xterm amennyiben a unicode USE flag-gel lett telepítve és uxterm névvel lett indítva. A app-misc/screen szintén támogatja az UTF-8-at, ha a screen -U formában indítod vagy ha a következőt beírod a ~/.screenrc fájlba:

Kódlista 3.10: ~/.screenrc UTF-8-hoz

defutf8 on

Vim, Emacs, Xemacs és Nano

A Vim teljes mértékben támogatja az UTF-8-at és felismeri az UTF-8 állományokat. További információkért add ki a :help mbyte.txt parancsot a vim-ben.

Az Emacs 22.x és e feletti verziók szintén teljesen támogatják az UTF-8-at. Xemacs 22.x nem támogatja a karakterek kombinálását még.

Az Emacs és/vagy az Xemacs alacsonyabb verzió számára lehetséges, hogy telepítened kell a app-emacs/mule-ucs és/vagy a app-xemacs/mule-ucs csomagokat és hozzá kell adnod a következő sorokat a ~/.emacs, hogy a CJK nyelvek számára is elérhető legyen az UTF-8:

Kódlista 3.11: Emacs CJK UTF-8 támogatás

(require 'un-define)
(require 'jisx0213)
(set-language-environment "Japanese")
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)

A Nano az 1.3.6-os verzió óta támogatja az UTF-8-at.

Parancssorok

Jelenleg csak a bash támogatja teljes körűen a Unicode-ot a GNU readline programkönyvtáron keresztül. A Z Shell támogatja a Unicode-ot, csak be kell állítani a unicode USE feget.

A C shell, a tcsh és a ksh egyáltalán nem támogatja az UTF-8.

Irssi

Az Irssi teljesen támogatja az UTF-8-at, habár a felhasználónak kell ezt beállítania.

Kódlista 3.12: UTF-8 támogatás bekapcsolása az Irssi-ben

/set term_charset UTF-8

Azokon a csatornákon amelyeken gyakran keverednek nem ASCII karakterek nem UTF-8-as karakterekkel, a /recode parancs használható a konvertálásra. A /help recode parancs további információkat nyújt.

Mutt

A Mutt levelező nagyon jó Unicode támogatással rendelkezik. Ahhoz, hogy ezt használhasd nem kell semmit sem a konfigurációs állományokba írnod. A Mutt bármilyen módosítás nélkül Unicode felületet biztosít, ha az összes konfigurációs állományod UTF-8-as (az ehhez szükséges sorokat tartalmazzák a fájlok).

Megjegyzés: Ennek ellenére a Mutt-tal olvasott leveleidben láthatsz '?' karaktereket. Ennek az az oka, hogy az emberek olyan levelező programot használnak amely nem közli a használt karakterkészletet. Ez ellen mást nem tudsz tenni, mint hogy megkéred őket, hogy állítsák be rendesen a levelezőjüket

További információkat a Mutt Wiki-ben találhatsz.

Man

A Man minden Linux szerves részét képezi. Ahhoz, hogy a man-ban előforduló Unicode helyesen jelenjen meg, a /etc/man.conf állományt szerkeszd át a következő módon:

Kódlista 3.13: A man.conf módosítása a Unicode támogatásért

(Ez az eredeti sor)
NROFF           /usr/bin/nroff -Tascii -c -mandoc
(A fenti sort módosítsd erre)
NROFF           /usr/bin/nroff -mandoc -c

Elinks és links

Lássuk, hogyan tudjuk rávenni ezeket a közkedvelt szöveges alapú böngészőket az UTF-8 támogatására! Erre két lehetőségünk is van az elinks és a links esetében. Egyrészt, elvégezhetjük a böngészőn belül a Setup menüben ill. át kézzel is módosíthatjuk a konfigurációs fájlt. Ahhoz, hogy a menüből tudjuk ezt beállítani, először meg kell nyitnunk egy weboldalt a elinks-ben vagy a links-ben, aztán az Alt+S gyorsbillentyűvel tudunk belépni a Setup menübe. Ott a Terminal options-t kell kiválasztani vagy megnyomni a T billentyűt. Válaszd ki a lista legutolsó opcióját, az UTF-8 I/O-t és nyomd meg az Enter billentyűt. A Save-vel tudod elmenteni a beállításokat és kilépni a menüből. A links esetében újra meg kell nyomnod az Alt+S billentyűkombinációt, utána pedig az S billentyűt a mentéshez. A konfigurációs fájl beállítása lentebb látható.

Kódlista 3.14: UTF-8 engedélyezése elinks/links böngészőkben

(Az elinks-hez az /etc/elinks/elinks.conf vagy az ~/.elinks/
elinks.conf állományba kell a következő sort beleírnod)
set terminal.linux.utf_8_io = 1

(A links-hez a ~/.links/links.cfg állományba kell az alábbi sort írnod)

terminal "xterm" 0 1 0 us-ascii utf-8

Samba

A Samba programcsomag az SMB (Server Message Block) protokol implementációja UNIX rendszerekre, mint amilyen a Mac, a Linux vagy a FreeBSD. A protokolt gyakran Általános Internetes Fájlrendszerként (Common Internet File System, CIFS) is emlegetik. A Samba a NetBIOS rendszert is tartalamazza amely windows-os hálózatokon történő állománymegosztásra szolgál.

Kódlista 3.15: Az UTF-8 engedélyezése a Samba-ban

(A következő sort add hozzá az /etc/samba/smb.conf konfigurációs 
állomány [global] részéhez)
dos charset = 1255
unix charset = UTF-8
display charset = UTF-8

Az egész kipróbálása

Számos UTF-8 tesztoldalt találhatsz a neten. A net-www/w3m, a net-www/links, az net-www/elinks, a net-www/lynx és az összes Mozilla alapú böngésző (beleértve a Firefox-ot is) támogatja az UTF-8- at. A Konqueror és az Opera szintén teljes mértékben támogatja az UTF-8-at.

Szöveges alapú böngészők használatakor legyél teljesen biztos abban, hogy Unicode-ot támogató terminált használsz.

Ha bizonyos karakterek helyett kis négyzeteket látsz betűkkel vagy számokkal a belsejükben, az azt jelenti, hogy a beállított betűtípusod nem tartalmazza annak a szimbólumnak vagy jelnek a karakterét amelyet az UTF-8 megkíván.

Beviteli módok

A Dead keys (Halott billentyűk) használható olyan karakterek bevitelére X alatt amelyek nem találhatóak meg a billentyűzeteden. Ezeket úgy tudod elérni, hogy megnyomod a jobb oldali Alt billentyűt (néhány országban ez az AltGr) és egyet az Entertől balra található nem betűt jelentő billentyűk közül valamelyiket, majd miután egyszerre felengedted őket megnyomsz egy betűt. A dead key módosítani fogja ezt. A bevitel tovább módosítható a Shift billentyűvel ha az AltGr és a módosító billentyűvel egy időben nyomod meg.

A dead keyek használatához egy olyan layout-ra van szükséged amely támogatja azt. A legtöbb európai layout-ban már megtalálható a dead keys alapértelmezett változata. Azonban az Észak-Amerikai layoutokra. Habár van némi következetlenség a layoutok között, mégis az tűnik a legjobb megoldásnak ha például "en_US" formában használod az "us" helyett. A layoutot az /etc/X11/xorg.conf állományban lehet beállítani, ehhez hasonlóan:

Kódlista 3.16: /etc/X11/xorg.conf snippet

Section "InputDevice"
    Identifier "Keyboard0"
    Driver     "kbd"
    Option     "XkbLayout" "en_US" # Inkább így mint csak "us"
    (ide jöhet a többi Xkb opció)
EndSection

Megjegyzés: A fenti módosítást csak akkor kell elvégezned, ha Észak-Amerikai vagy olyan egyéb layout-ot használsz amelyben nem működnek a dead keyek. Európai felhasználóknak működniük kell e nélkül is.

Ez a változtatás az X szerver újraindítása után fog életbe lépni. A változtatások azonnali érvényesítéséhez a setxkbmap segédprogramot használhatod, pl. setxkbmap en_US.

A dead keyeket a legkönnyebben talán példákon keresztül lehet megérteni. A végeredmény ugyan lokálfüggő, de az elv ugyanaz a lokáltól függetlenül. A példák UTF-8 karaktereket tartalmaznak, tehát a megtekintésükhöz meg kell mondanod a böngésződnek, hogy ezt az oldalt UTF-8-as oldalként jelenítse meg vagy előbb be kell állítanod egy UTF-8 lokált.

Ha lenyomom az AltGr és a [ billentyűket egyszerre, majd miután felengedtem őket megnyomom az a billentyűt, 'ä' karaktert kapok. Ha az AltGr és a [ lenyomása után az e billentyűt nyomom le, ez 'ë' karaktert eredményez. Az AltGr és a ; lenyomásával 'á' karaktert, ha az AltGr és ; billentyűket nyomom le, majd felengedésük után megnyomom az e billentyűt 'é' karaktert kapok.

Az AltGr, a Shift és a [ együttes lenyomásával, majd felengedésével és az utána történő a billentyű lenyomásával skandináv 'å' karaktert kapok. Hasonlóan ha lenyomom az AltGr, a Shift és a [ billentyűket, aztán ha felengedem csak a [ billentyűt, majd újra megnyomom, ez '˚' karaktert eredményez. Habár ez úgy néz ki mintha az lenne, ez (U+02DA) a karakter nem azonos a fok szimbólummal (U+00B0). Ez a többi dead key-jel előállítható ékezethez is használható - az AltGr és a [ egyszerre történő lenyomása után a [ felengedése és újbóli megnyomása '¨' karaktert eredményez.

Az AltGr a csak betűket jelentő billentyűkkel is használható. Példuál AltGr és m a görög kis műt eredményezi: 'µ', az AltGr és s a német 13-as sz betűt: 'ß'. Ahogy azt a legtöbb európai felhasználó elvárja (mivel jelölve van a billentyűzetükön) az AltGr és a 4-es (vagy E, a billentyűzettől függően) az Euró szimbólumot '€' eredményezi.

További információk



Nyomtatás

Frissítve 2007. április 17.

Ezen dokumentum eredeti változatának utolsó frissítési dátuma 2011. március 8.

Összefoglaló: Ez a leírás a Unicode, pontosabban az UTF-8 előnyeinek bemutatása után ismerteti az UTF-8-as Unicode karakterek használatát Gentoo Linux alatt.

Thomas Martin
Szerző

Alexander Simonov
Közreműködő

Shyam Mani
Szerkesztő

Lukács Árpád
Fordító

Lónyai Gergely
Lektor

Donate to support our development efforts.

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