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 2009. augusztus 11.

Ö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.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Online Kredit Index
Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.