Gentoo Logo

UTF-8 unter Gentoo

Inhalt:

1.  Zeichensätze

Was ist ein Zeichensatz?

Computer verstehen den Text nicht als solches, stattdessen wird jedes Zeichen durch eine Zahl repräsentiert. Traditionell war die Zeichentabelle mit den entsprechenden Zuordnungen aufgrund technischer Begrenzungen in ihrer Größe beschränkt.

Die Geschichte der Zeichensätze

Der verbreitetste (oder der zumindest weitgehend meist akzeptierte) Zeichensatz ist ASCII (American Standard Code for Information Interchange). Er wird weitesgehend als erfolgreichster Softwarestandard überhaupt anerkannt. Modernes ASCII wurde 1986 vom American National Standards Institute standardisiert (ANSI X3.4, RFC 20, ISO/IEC 646:1991, ECMA-6).

ASCII nutzt strikt Bitmuster mit sieben Binärziffern, welche einen Dezimalzahlenraum von 0 bis 127 zulassen. Darunter befinden sich 32 unsichtbare Steuerzeichen, die meisten zwischen 0 und 31, mit dem letzten Steuerzeichen DEL bzw. Entf bei 127. Die Zeichen von 32 bis 126 sind sichtbare Zeichen: darunter ein Leerzeichen, Satzzeichen, lateinische Buchstaben und Zahlen.

Das achte Bit in ASCII wurde ursprünglich als Prüfbit genutzt. Falls dies nicht gewünscht ist, wird es mit einer 0 belegt. Das bedeutet, dass jedes Zeichen in ASCII durch ein einzelnes Byte repräsentiert wird.

ASCII reichte zur Kommunikation im modernen Englisch aus, in anderen europäischen Sprachen jedoch, die weitere Zeichen nutzen, wurde es schwierig. Aus diesem Umstand wurden die ISO-8859-Standards entwickelt, welche zum einen abwärtskompatibel zu ASCII sind, zum anderen das achte Bit für weitere 127 Zeichen nutzen. Die Begrenzungen von ISO-8859 wurden schnell ersichtlich, mittlerweile gibt es 15 Varianten des ISO-8859-Standards (8859-1 bis 8859-15). Um die Interoperabilität zwischen den Zeichensätzen weiter zu erschweren, wurde in einigen Microsoft Windows-Versionen Windows-1252 für westeuropäische Sprachen eingesetzt, eine Obermenge von ISO-8859-1, jedoch unterscheidet diese sich in vielerlei Hinsicht. All diese Zeichensätze behalten dennoch ASCII-Kompatibilität.

Die benötigte Entwicklung von komplett verschiedenen Single-Byte-Zeichensätzen für nicht-lateinische Alphabete, wie EUC (Extended Unix Coding) für Japanisch und Koreanisch (und in geringerem Maße Chinesisch) stiftete noch mehr Verwirrung, während andere Betriebssysteme weiterhin andere Zeichensätze für die gleichen Sprachen nutzten, beispielsweise Shift-JIS und ISO-2022-JP. Benutzer, die die Darstellung von kyrillischen Zeichen wünschten, hatten die Wahl zwischen KOI8-R für Russisch und Bulgarisch, oder KOI8-U für Ukrainisch und anderen kyrillischen Zeichensätzen wie z.B. der nicht erfolgreiche ISO-8859-5- und der gebräuchliche Windows-1251-Satz. Alle diese Zeichensätze sind größtenteils nicht ASCII-kompatibel (obwohl KOI8 Kodierungen die kyrilischen Zeichen in lateinischer Reihenfolge plazieren, so dass wenn das achte Bit entfernt wird der Text auf einem ASCII-Terminal noch durch Buchstaben-verdrehte Transkription zu entzifferen ist).

Dies führte zu Verwirrungen und beinahe zur Unfähigkeit mehrsprachiger Kommunikation, besonders zwischen verschiedenen Alphabeten. Nun kommt Unicode.

Was ist Unicode?

Unicode durchbricht die traditionelle Single-Byte-Grenze der Zeichensätze. Der Zeichensatz nutzt 17 Ebenen von 65.536 Code Points und ermöglicht ein Maximum von 1.114.112 Zeichen. Die erste Ebene wird "Basic Multilingual Plane" oder BMP bezeichnet und beinhaltet fast alles was Sie je brauchen werden. Viele nahmen fälschlicherweise an, dass Unicode ein 16-Bit-Zeichensatz sei.

Unicode wurde auf verschiedene Weise abgebildet, aber die meist verbreitetsten sind UTF (Unicode Transformation Format) und UCS (Universal Character Set). Eine Nummer hinter UTF gibt die Zahl der Bits in einer Einheit an, während die Nummer hinter UCS die Zahl der Bytes anigbt. Aufgrund der sauberen 8-Bit-Basis von UTF-8, ist es die weitverbreitetste Konvention zum Austausch von Unicode-Text geworden und ist daher Thema dieses Dokuments.

UTF-8

UTF-8 ist ein variabellanger Zeichensatz, was in diesem Beispiel bedeutet, dass er 1 bis 4 Byte pro Symbol nutzt. So wird das erste UTF-8-Byte zur ASCII-Kodierung genutzt, dies ermöglicht volle Abwärtskompatibilität zu ASCII. UTF-8 bedeutet, dass ASCII- und lateinische Zeichen austauschbar sind, mit einem relativ geringen Anstieg der Datengröße, da nur das erste Bit genutzt wird. Benutzer der östlichen Alphabete wie die Japaner, welche einen höheren Zahlenbereich zugeschrieben bekamen, dürften hingegen über die 50% zusätzliche Datenredundanz unglücklich sein.

Was UTF-8 für Sie tun kann

UTF-8 erlaubt ihnen in einer standardkonformen und international akzeptierten, mehrsprachigen Umgebung zu arbeiten, mit einer vergleichsweise geringen Datenredundanz. UTF-8 ist der bevorzugte Weg nicht-ASCII-Zeichen über das Internet, Email, IRC und nahezu jedem anderen Medium zu übertragen. Trotzdessen stehen einige Menschen UTF-8 in der Online-Kommunikation schmähend gegenüber. Es ist daher immer ratsam sich der Haltung in Channels, Mailinglisten, oder Usenet-Gruppen gegenüber UTF-8 bewusst zu sein, bevor man nicht-ASCII UTF-8 verwendet.

2.  UTF-8 unter Gentoo Linux einrichten

Finden oder Erstellen von UTF-8 Locales

Jetzt, wo Sie die Hintergründe zu Unicode verstanden haben, sind Sie bereit auf ihrem System UTF-8 zu benutzen.

Die Grundvorraussetzung UTF-8 nutzen zu können, ist eine installierte Version von glibc mit National Language Support. Dazu brauchen Sie die /etc/locale.gen Datei. Es geht jedoch über den Rahmen dieses Dokuments hinaus, die Benutzung dieser Datei zu erklären. Es wird in der Gentoo Anleitung zur Lokalisierung erläutert.

Nun werden wir überprüfen, ob schon UTF-8-Locales installiert sind, oder ob wir sie erst erstellen müssen.

Befehlsauflistung 2.1: Überprüfen ob eine UTF-8-Locale existiert

(Ersetzen Sie "en_GB" mit der gewünschten Locale-Einstellung)
# locale -a | grep 'en_GB'
en_GB
en_GB.UTF-8

In der Ausgabe muss das Resultat mit einem Suffix wie .UTF-8 vorkommen, andernfalls müssen wir eine UTF-8-kompatible Locale erstellen.

Notiz: Führen Sie die nachfolgenden Befehle nur aus, wenn Sie keine UTF-8-kompatible Locale für ihre Sprache zur Verfügung haben.

Befehlsauflistung 2.2: Eine UTF-8-Locale erstellen

(Ersetzen Sie "en_GB" mit der gewünschten Locale-Einstellung)
# localedef -i en_GB -f UTF-8 en_GB.UTF-8

Ein weiterer Weg eine UTF-8-Locale zu erstellen, ist diese der /etc/locale.gen Datei hinzuzufügen und die nötigen Locales mit dem locale-gen Befehl zu erstellen.

Befehlsauflistung 2.3: Zeile in /etc/locale.gen

en_GB.UTF-8 UTF-8

Setzen der Locale

Es muss eine Umgebungsvariable gesetzt werden, damit die neuen UTF-8-Locales genutzt werden können: LC_CTYPE (oder optional LANG, falls Sie auch die Systemsprache ändern wollen). Es gibt hier wieder einige Möglichkeiten, sie zu setzen. Manche Menschen bevorzugen es, die Einstellung nur für bestimmte Nutzer zu übernehmen; in diesem Fall muss sie entweder in ~/.profile (wenn Sie /bin/sh verwenden) bzw. in ~/.bash_profile oder ~/.bashrc (wenn Sie /bin/bash verwenden) gesetzt werden. (Weitere Details und bewährte Vorgehensweisen finden Sie in unserer Anleitung zur Lokalisierung.

Andere bevorzugen die Locale global zu setzen. Dies empfiehlt der Autor besonders, wenn /etc/init.d/xdm genutzt wird, da das Initskript den Displaymanager und den Desktop startet, bevor irgendwelche zuvor erwähnten Shell-Startup-Dateien gelesen werden.

Um die Einstellung global zu übernehmen, muss /etc/env.d/02locale bearbeitet werden. Die Datei sollte wie folgt aussehen:

Befehlsauflistung 2.4: Demonstrations /etc/env.d/02locale

(Wie immer "en_GB.UTF-8" auf Ihre Locale ändern)
LANG="en_GB.UTF-8"

Notiz: Sie können auch LC_CTYPE anstelle von LANG verwenden. Für weitere Informationen zu den Kategorien, welche von LC_CTYPE betroffen sind, lesen Sie bitte die GNU Locale Seite.

Als Nächstes muss die Umgebung mit den Änderungen aktualisiert werden.

Befehlsauflistung 2.5: Aktualisierung der Umgebung

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

Nun führen Sie locale ohne Argumente aus, um zu sehen, ob wir die korrekten Variablen in unserer Umgebung haben.

Befehlsauflistung 2.6: Überprüfen ob unsere neue Locale in der Umgebung ist

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

Das ist alles. Sie nutzen jetzt UTF-8-Locales. Die nächste Hürde ist die Konfiguration der Programme, die Sie täglich nutzen.

3.  Programmunterstützung

Als Unicode anfing in der Softwarewelt Bedeutung zu erlangen, waren Multi-Byte-Zeichensätze unpassend zu Sprachen wie C, in welcher viele der heutigen Programme geschrieben sind. Auch heute noch, sind einige Programme nicht in der Lage, mit UTF-8 entsprechend umzugehen. Glücklicherweise sind es die wenigsten.

Dateinamen, NTFS und FAT

Es existieren mehrere NLS-Optionen im Linux-Kernelkonfigurationsmenü, aber es ist wichtig sich nicht beirren zu lassen. Für den größten Teil müssen Sie nur die UTF-8-NLS-Unterstützung in den Kernel einbauen und die NLS-Standardoption nach utf8 abändern.

Befehlsauflistung 3.1: Kernelkonfigurationsschritte für UTF-8-NLS

File Systems -->
  Native Language Support -->
    (utf8) Default NLS Option
    <*> NLS UTF8
    (Setzen Sie auch <*> für alle Zeichensätze die Sie in ihren
    FAT-Dateisystemen, oder Joilet-CD-ROMs nutzen.)

Falls Sie vorhaben, NTFS-Partitionen zu mounten, müssen Sie unter Umständen eine nls=-Option mit mount spezifizieren. Falls Sie FAT-Partitionen mounten wollen, muss unter Umständen die codepage-Option angegeben werden. Optional können Sie eine Standard-Codepage für FAT in der Linux-Kernelkonfiguration definieren. Bedenken Sie, dass die codepage-Option welche Sie mit mount angeben, die Standardeinstellung des Kernels überschreibt.

Befehlsauflistung 3.2: FAT-Einstellungen in der Kernelkonfiguration

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

Sie sollten es vermeiden, Default iocharset for fat auf UTF-8 zu setzen, da es nicht empfohlen wird. Stattdessen sollten Sie die Option utf8=true übergeben, wenn Sie FAT-Partitionen mounten. Für weitere Informationen, lesen Sie die Manpage zu mount (man mount) und die Kerneldokumentation in /usr/src/linux/Documentation/filesystems/vfat.txt.

Zur Änderung der Kodierung der Dateinamen, kann app-text/convmv genutzt werden.

Befehlsauflistung 3.3: Beispiel zur Nutzung von convmv

# emerge --ask app-text/convmv
(Befehlsformat)
# convmv -f <current-encoding> -t utf-8 <Dateiname>
(Ersetzen Sie iso-8859-1 durch dem Zeichensatz von dem aus konvertiert wird)
# convmv -f iso-8859-1 -t utf-8 filename

Um den Inhalt von Dateien zu ändern, nutzen Sie das iconv Programm, welches mit glibc installiert wird:

Befehlsauflistung 3.4: Beispiel zur Nutzung von iconv

(Ersetzen Sie iso-8859-1 durch den Zeichensatz von dem aus konvertiert wird)
(Überprüfen Sie, ob die Ausgabe in Ordnung ist)
# iconv -f iso-8859-1 -t utf-8 filename
(Zur Konvertierung einer Datei müssen Sie eine neue Datei erstellen)
# iconv -f iso-8859-1 -t utf-8 filename > newfile

app-text/recode kann für diesen Zweck ebenso genutzt werden.

Die Systemkonsole

Wichtig: Sie brauchen >=sys-apps/baselayout-1.11.9 für Unicode in der Konsole.

Um UTF-8 in der Konsole zu aktivieren, müssen Sie /etc/rc.conf editieren und UNICODE="yes" setzen, zudem sollten Sie die Kommentare in dieser Datei lesen -- es ist wichtig, eine Schriftart zu finden, welche einen möglichst großen Zeichenvorrat hat, wenn Sie das Potential von Unicode ausschöpfen möchten. Damit dies funktioniert, müssen Sie sicher sein, dass Sie, wie in Kapitel 1 beschrieben, eine Unicode-Locale korrekt erstellt haben.

Die KEYMAP-Variable, welche in /etc/conf.d/keymaps gesetzt wird, sollte ein Unicode-Layout spezifizieren.

Befehlsauflistung 3.5: Beispielsauszug aus /etc/conf.d/keymaps

(Ändern Sie "uk" auf Ihr lokales Layout)
KEYMAP="uk"

Ncurses und Slang

Notiz: Ignorieren Sie alle Erwähnungen von Slang in diesem Abschnitt, wenn Sie es nicht installiert haben, oder nicht nutzen.

Es ist ratsam unicode zu ihren globalen USE-Flags in /etc/make.conf hinzuzufügen und die Pakete sys-libs/ncurses und, sofern installiert, sys-libs/slang erneut zu installieren. Dies erledigt Portage automatisch, wenn Sie ihr System aktualisieren:

Befehlsauflistung 3.6: Aktualisieren des Systems

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

Nachdem die USE-Flags geändert wurden, müssen alle Pakete erneut gebaut werden, welche auf Ncurses oder Slang verlinken. Das Tool das wir dafür verwenden (revdep-rebuild) ist Teil des gentoolkit Pakets.

Befehlsauflistung 3.7: Neukompilieren der Programme, welche von Ncurses oder Slang abhängen

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

KDE, GNOME und Xfce

Alle großen Desktopumgebungen bieten volle Unicode-Unterstützung und benötigen keine weiteren Einstellungen, welche nicht schon in diesem Guide behandelt wurden. Der Grund dafür ist, dass die eingesetzten grafischen Toolkits (Qt oder GTK+2) UTF-8-gerüstet sind. Folglich sollte jede Anwendung, die auf einer dieser Toolkits aufbaut, UTF-8-gerüstet sein.

Ausnahmen bilden Xlib und GTK+1. GTK+1 erfordert eine ISO-10646-1 FontSpec in ~/.gtkrc, zum Beispiel -misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1. Des Weiteren benötigen Anwendungen, welche Xlib oder Xaw nutzen, eine ähnliche FontSpec, andernfalls verweigern sie ihren Dienst.

Notiz: Falls Sie noch eine Version vom Gnome-Kontrollzenter 1 haben, nutzen Sie diese stattdessen. Wählen Sie von dort irgendeine ISO-10646-1 Schriftart.

Befehlsauflistung 3.8: Beispiel ~/.gtkrc (für GTK+1) das eine Unicode-kompatible Schrift definiert

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

Sollte eine Anwendung Unterstützung für sowohl Qt, als auch GTK+2 bieten, wird die GTK+2-GUI allgemein bessere Ergebnisse mit Unicode liefern.

X11 und Schriftarten

TrueType-Schriften bieten Unterstützung für Unicode und die meisten mit Xorg mitgelieferten Schriften haben eine beeindruckende Zeichenunterstützung, wenn auch offensichtlich nicht jedes einzelne für Unicode existierende Zeichen für jede Schrift verfügbar ist. Um Schriften zu erstellen (einschließlich des Bitstream Vera-Satzes), welche Unterstützung für ostasiatische Buchstaben bieten, müssen Sie cjk zu ihren USE-Flags hinzufügen. Einige andere Anwendungen nutzen dieses Flag, daher kann es von Vorteil sein es permanent als USE-Flag hinzuzufügen.

Auch sind mehrere Schriftpakete in Portage Unicode-gerüstet.

Befehlsauflistung 3.9: Optional: Installation weiterer Unicode-gerüsteten Schriften

# emerge terminus-font intlfonts freefonts corefonts

Window-Manager und Terminal-Emulatoren

Window-Manager, welche nicht auf GTK oder Qt basieren, haben allgemein eine sehr gute Unicode-Unterstützung, da sie zum Handhaben der Schriften oft die Xft-Bibliothek nutzen. Falls ihr Window-Manager kein Xft nutzt, bleibt Ihnen immer noch die im vorherigen Abschnitt erwähnte FontSpec als Unicode-Schrift.

Terminal-Emulatoren, welche Xft nutzen und Unicode unterstützen, sind schwieriger zu bekommen. Abgesehen von Konsole und gnome-terminal, sind die besten Optionen in Portage x11-terms/rxvt-unicode, x11-terms/terminal, gnustep-apps/terminal, x11-terms/mlterm, oder das simple x11-terms/xterm, sofern es mit dem unicode-USE-Flag kompiliert wurde und mit uxterm aufgerufen wird. app-misc/screen unterstützt ebenfalls UTF-8, dazu muss es mit screen -U aufgerufen werden, oder das Folgende wird zur ~/.screenrc hinzugefügt:

Befehlsauflistung 3.10: ~/.screenrc für UTF-8

defutf8 on

Vim, Emacs, Xemacs und Nano

Vim bietet volle UTF-8-Unterstützung und hat eine eingebaute UTF-8-Dateierkennung. Für weitere Informationen rufen Sie in Vim :help mbyte.txt auf.

Emacs Version 23 und Xemacs Version 21.5 haben volle UTF-8-Unterstützung. Emacs 24 wird weiterhin das Editieren bidirektionalen Textes unterstützen.

Nano hat volle Unterstützung für UTF-8 seit Version 1.3.6.

Shells

Zurzeit bietet die bash volle Unicode-Unterstützung durch die GNU Readline Library. Z-Shell (zsh) bietet Unicode-Unterstützung mit dem unicode USE-Flag an.

Die C-Shell, tcsh und ksh unterstützen kein UTF-8.

Irssi

Irssi bietet UTF-8-Unterstützung, auch wenn es einer zusätzlichen Einstellung bedarf.

Befehlsauflistung 3.11: Aktivieren von UTF-8 in Irssi

/set term_charset UTF-8

Für Channels, in denen nicht-ASCII-Zeichen durch nicht-UTF-8-Zeichen ausgewechselt werden, kann der Befehl /recode verwendet werden, um diese Zeichen umzuwandeln. Tippen Sie /help recode ein, für mehr Informationen.

Mutt

Der Mutt MUA (Mail User Agent) hat sehr gute Unicode-Unterstützung. Um UTF-8 mit Mutt zu nutzen, müssen Sie nichts zu Ihren Konfigurationsdateien hinzufügen. Mutt wird unter Unicode-Umgebungen ohne Anpassung funktionieren, wenn alle Konfigurationsdateien (einschließlich der Signatur) in UTF-8 kodiert sind.

Notiz: Es kann vorkommen, dass Sie weiterhin ein '?' sehen, wenn Sie Mails mit Mutt lesen. Das ist ein Ergebnis aus falschen Einstellungen des Mailclients, den der Sender benutzt. Sie können da nicht viel tun, außer das Sie die betreffende Person bitten, den Client so einzustellen, dass der korrekte Zeichensatz spezifiziert wird.

Weitere Informationen sind im Mutt Wiki verfügbar.

Man

Manpages sind integraler Bestandteil eines jeden Linuxsystems. Um sicherzustellen, dass Unicode in ihren Manpages korrekt dargestellt wird, editieren Sie /etc/man.conf und ersetzen eine Zeile wie unten gezeigt.

Befehlsauflistung 3.12: man.conf Änderungen für Unicode-Unterstützung

(Dies ist die alte Zeile)
NROFF           /usr/bin/nroff -Tascii -c -mandoc
(Ersetzen Sie die obige Ziele hiermit)
NROFF           /usr/bin/nroff -mandoc -c

elinks und links

Dies sind oft genutzte Textbrowser und wir sollten zeigen, wie Sie deren UTF-8-Unterstützung aktivieren. Für elinks und links gibt es zwei Wege, um dies zu realisieren. Einer besteht darin, die Setup-Option des Browsers zu nutzen, der andere darin, die Konfigurationsdatei zu editieren. Um die Option durch den Browser zu setzen, öffnen Sie eine Seite mit elinks oder links und drücken Alt+S, um das Setup-Menü aufzurufen. Dann wählen Sie Terminal Options, oder drücken T. Scrollen Sie runter und wählen Sie die letzte Option UTF-8 I/O durch drücken der Enter-Taste. Speichern Sie und verlassen Sie das Menü. Bei links müssen Sie Alt+S wiederholt drücken und anschließend S um zu speichern. Die Methode mit der Konfigurationsdatei wird unten gezeigt.

Befehlsauflistung 3.13: UTF-8 für elinks/links aktivieren

(Für elinks, editieren Sie /etc/elinks/elinks.conf oder
~/.elinks/elinks.conf und fügen die folgende Zeile hinzu)
set terminal.linux.utf_8_io = 1

(Für links, editieren Sie ~/.links/links.cfg und fügen die folgende
Zeile hinzu)
terminal "xterm" 0 1 0 us-ascii utf-8

Samba

Samba ist ein Softwarepaket, dass das SMB-Protokoll (Server Message Block) für UNIX-Systeme wie Macs, Linux und FreeBSD implementiert. Das Protokoll wird manchmal auch als Common Internet File System (CIFS) bezeichnet. Samba beinhaltet außerdem das NetBIOS-System; verwendet für den Dateiaustausch unter Windows-Netzwerken.

Befehlsauflistung 3.14: Aktivieren von UTF-8 für Samba

(Editieren Sie /etc/samba/smb.conf und fügen Sie den folgenden [global] Abschnitt hinzu)
dos charset = 1255
unix charset = UTF-8
display charset = UTF-8

Es alles austesten

Es gibt eine Vielzahl an UTF-8-Testseiten. net-www/w3m, net-www/links, net-www/elinks, net-www/lynx und alle Mozilla-basierenden Browser (einschließlich Firefox) unterstützen UTF-8. Konqueror und Opera bieten ebenfalls volle UTF-8-Unterstützung.

Wenn Sie einen der textbasierten Web-Browser verwenden, stellen Sie sicher, dass das Terminal, das Sie einsetzen, Unicode-gerüstet ist.

Falls Sie einige Zeichen als Boxen mit Buchstaben, oder Zahlen dargestellt bekommen, bedeutet das, dass die eingesetze Schrift kein geeignetes Zeichen für das Symbol zur Verfügung hat. Stattdessen wird eine Box mit dem zum UTF-8-Symbol gehörenden Hex-Code angezeigt.

Eingabemethoden

Dead Keys werden genutzt, um in X Zeichen einzugeben, welche nicht auf Ihrer Tastatur vorhanden sind. Das funktioniert, wenn Sie die rechte Alt-Taste (in einigen Ländern AltGr) und eine weitere Taste aus dem nicht-alphabetischen Teil der Tastatur links von der Eingabe-Taste einmal drücken, loslassen und dann einen Buchstaben drücken. Der Dead Key sollte ihn modifizieren. Eingaben können des Weiteren durch gleichzeitiges Drücken der Shift-Taste zusammen mit dem AltGr und dem Modifier beeinflusst werden.

Um Dead Keys in X zu aktivieren, brauchen Sie ein Layout, welches diese unterstützt. Die meisten europäischen Layouts haben bereits Dead Keys in der Standardausführung. Dies trifft jedoch nicht auf nordamerikanische Layouts zu. Auch wenn es einen gewissen Grad an Unbeständigkeit zwischen den Layouts gibt, scheint der einfachste Weg zu sein, beispielsweise ein Layout der Form "en_US" statt "us" zu nutzen. Das Layout wird in /etc/X11/xorg.conf bestimmt, zum Beispiel so:

Befehlsauflistung 3.15: /etc/X11/xorg.conf Auszug

Section "InputDevice"
    Identifier "Keyboard0"
    Driver     "kbd"
    Option     "XkbLayout" "en_US" # Statt einfach nur "us"
    (Weitere Xkb-Optionen hier)
EndSection

Notiz: Die obigen Änderungen müssen Sie nur durchführen, wenn Sie ein nordamerikanisches Layout nutzen, oder ein anderes Layout, bei welchem die Dead Keys nicht funktionieren. Europäische Nutzer sollten funktionierende Dead Keys haben, ohne etwas zu ändern.

Diese Änderung wird erst nach einem Neustart des X-Servers wirksam. Um sie sofort durchzusetzen, nutzen Sie das Tool setxkbmap, zum Beispiel so: setxkbmap en_US.

Es ist vermutlich einfacher Dead Keys anhand von Beispielen zu beschreiben. Auch wenn die Ergebnisse von der Locale abhängig sind, sollten die Konzepte, unabhängig von der Locale, die gleichen sein. Die Beispiele beinhalten UTF-8, um sie darzustellen müssen Sie ihrem Browser entweder mitteilen, die Seite als UTF-8 anzuzeigen, oder aber Sie haben bereits UTF-8-Locales konfiguriert.

Wenn ich AltGr und einmal [ drücke, loslasse und dann a drücke, erhalte ich 'ä'. Wenn ich AltGr und einmal [ drücke und dann e, erhalte ich 'ë'. Wenn ich einmal AltGr und ; drücke, erhalte ich 'á' und wenn ich AltGr und ; drücke, dann loslasse, erhalte ich 'é'.

Durch gleichzeitiges Drücken von AltGr, Shift und [, dann loslasse und a drücke, erhalte ich ein skandinavisches 'å'. Wenn ich AltGr, Shift und [ drücke und nur [ loslasse, dann nochmals drücke, erhalte ich '˚'. Auch wenn es aussieht wie eines, dieses (U+02DA) ist nicht das gleiche wie ein Grad-Symbol (U+00B0). Das funktioniert für andere Akzente, welche mit Dead Keys produziert werden - AltGr und [, nur [ loslassen, dann nochmals drücken, produziert '¨'.

AltGr kann allein mit alphabetischen Tasten benutzt werden. Beispielsweise wird durch Drücken von AltGr und m ein kleines griechisches mu produziert: 'µ'. AltGr und s produzieren ein scharfes s oder Esszet: 'ß'. Wie einige europäische Nutzer erwarten würden (weil es auf ihren Tastaturen aufgedruckt ist), produziert AltGr und 4 (oder E, abhängig vom Tastaturlayout) ein Eurozeichen, '€'.

Ressourcen



Drucken

Seite aktualisiert 8. März 2011

Die Originalversion dieser Übersetzung wird nicht länger gepflegt

Zusammenfassung: Dieser Leitfaden zeigt Ihnen, nachdem die Vorzüge von Unicode und genauer UTF-8 erläutert wurden, wie Sie den UTF-8 Unicode Zeichensatz auf Ihrem Gentoo Linux System einrichten und verwenden.

Thomas Martin
Autor

Alexander Simonov
Mitarbeiter

Shyam Mani
Bearbeiter

Joshua Saddler
Bearbeiter

Norman Golisz
Übersetzer

Jan Hendrik Grahl
Übersetzer

Tobias Heinlein
Übersetzer

Martin Winkler
Übersetzer

Donate to support our development efforts.

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