Unicode bzw. UTF-8 als einer seiner Vertreter ist in vieler Hinsicht einfacher zu handhaben als die Vielzahl länderspezifischer Zeichensätze. Wie der Name schon vermuten lässt kann man mit Unicode nahezu jedes beliebige Zeichen darstellen und so sollten kaputte Umlaute und ähnliche Probleme endlich der Vergangenheit angehören.
Erreicht wird das durch Vergrößerung des Speicherbereichs für ein Zeichen. Bei alten Zeichsätzen belegt ein Zeichen normalerweise 8 Bit und so kann ein Zeichensatz 2^8=256 Zeichen enthalten. Unicodezeichen belegen 16 Bit und so kann der neue Zeichsatz bis zu 2^16=65536 Zeichen enthalten. Sollte das einmal nicht mehr ausreichen, so ist der neue Standard auch auf noch größere Zeichenlängen erweiterbar.
Ein System auf UTF-8 umzustellen ist jedoch bisweilen noch etwas umständlich, da jedes Programm einzeln für den neuen Zeichensatz konfiguriert werden muss.
Hier folgen die Anleitungen, um einige bekannte Linux Programme für UTF-8 zu konfigurieren:
Um systemweit bekannt zu machen welcher Zeichsatz/welche Sprache im System verwendet wird gibt es die Lokalisierung oder engl. locale. Diese muss auf die UTF-8 Version der jeweiligen Sprache umgestellt werden und das geht so:
- In /etc/locale.gen gewünschte Locales durch ein-/auskommentieren aktivieren und dann
locale-genausführen. - In /etc/env.d/02locale die Umgebungsvariablen passend zum gewählten Locale einstellen, z.B. so
LANG="de_DE.utf8"
LC_ALL="de_DE.utf8"
GDM_LANG="de_DE.utf8"
Die Formatierung des Locale muss exakt mit der Ausgabe von locale -a übereinstimmen!
Ein nicht existierendes Locale kann man mit localedef -c -f utf8 -i de_DE de_DE.utf8 erstellen.
Damit Tastatureingaben richtig umgesetzt werden muss auch hier auf ein passendes Tastaturlayout und Zeichsatz umgestellt werden.
/etc/rc.conf:
UNICODE="yes"
/etc/conf.d/keymaps:
KEYMAP="de-latin1-nodeadkeys"
Zeichensatz
emerge -av media-fonts/terminus-font
/etc/conf.d/consolefont:
CONSOLEFONT="ter-v16b"
#CONSOLETRANSLATION=""
Mit den folgenden Zeilen kann man der Bash nochmal explizit mitteilen, dass Unicode verwendet wird. Bei mir war dies nicht nötig aber evtl. rettet das ja mal jemanden ;)
~/.bashrc:
if [ $TERM = "linux" ]
then
/usr/bin/unicode_start
fi
MAN-Pages auf UTF-8 umstellen:
Die Zeile “NROFF /usr/bin/nroff -Tascii -c -mandoc” ersetzen durch “NROFF /usr/bin/nroff -mandoc -c”
Damit Verzeichnislisting und Dateinamen mit Umlauten richtig
angezeigt werden, muss der Standard-Zeichensatz auf UTF-8 gesetzt werden.
/etc/apache2/httpd.conf:
AddDefaultCharset UTF-8
Auch der VI muss mit folgenden Einträgen überredet werden UTF-8 als Standard zu verwenden:
~/.vimrc:
set enc=utf-8
set fenc=utf-8
/etc/env.d/70less:
LESSCHARSET="utf-8"
Eigentlich sollte folgender Eintrag in der .screenrc ausreichen, allerdings habe ich festgestellt das sich screen manchmal nur mit einem expliziten start mit screen -U dazu bewegen lässt Unicode darzustellen.
~/.screenrc:
defutf8 on
“Mc must be compiled with the sys-libs/slang library for full unicode support.”
und das geht so:
- Füge slang zu den USE-flags in /etc/make.conf hinzu
- Führe als root emerge -avD mc aus
“Bash is unicode-aware since version 3 and when using readline version 5. Both are in portage.”
Um das sicherzustellen einfach so vorgehen:
emerge bash sys-libs/readline
revdep-rebuild --soname libreadline.so.4
rm /lib/libreadline.so.4*
Um alte Texte auf den neuen Zeichsatz zu konvertieren kann recode benutzt werden.
recode iso8859-1..utf8 plain-text-file.txt
Eigentlich ja ein Unding Dateinamen mit Sonderzeichen zu verwenden, aber wer’s braucht kann auch diese auf Unicode konvertieren.
- zum testen: convmv -f iso-8859-15 -t utf8 file-name-with-ä
- zum wirklichen Ausführen dem Aufruf ein --notest hinzufügen
Links zum Thema
- http://gentoo-wiki.com/HOWTO_Make_your_system_use_unicode/utf-8
- http://de.gentoo-wiki.com/UTF-8
- http://de.gentoo-wiki.com/Utf8#Useflags

Hello, my name is Alex, i’m a newbie here. I really do like your resource and really interested in things you discuss here, also would like to enter your community, hope it is possible:-) Cya around, best regards, Alex!
Sehr gute Arbeit.
Kurz und bündig alles notwendige zusammengefasst! Findet man nicht oft ;)
Greatz
s0x
Danke, danke ;)
Lob hört man immer gerne.
Von mir auch ein Lob und eine Frage: in welchem Paket gibt es convmv?
Grüße
Loci
Super Howto, danke.
Hi Loci, convmv ist bereits der Paketname.
$> emerge -av app-text/convmv
mp3unicode stellt die id3-Tags in mp3 files auf unicode um. Allerdings es ist nicht im Portage und muss aus Sources zusammengebaut werden.
EDIT: http://mp3unicode.yellowsite.ru/
Danke für den Tipp, habe noch eben den Link dazu eingefügt ;)
Der mc bestand bei mir auf
euse -E slang && emerge sys-libs/slang
Danke für diese Anleitung!
…auch wenn diese Anleitung schon ein paar Tage alt ist – sie ist immer noch hilfreich! Vielen Dank dafür.
Und hier noch ein kleiner Zusatz für Dropbox user:
Nach einem Update von gentoo (world) habe ich plötzlich keine Dropbox Icons mehr im tray gehabt (und einiges andere mehr). Nachdem ich es fast schon aufgegeben habe, habe ich mich erst mal um andere Probleme gekümmert. Nach dem Zurückstellen auf UTF-8 waren auch wieder die Icons da!
[...] Gentoo auf UTF-8/Unicode umstellen – A geek’s blog – A geek’s blogUnicode bzw. UTF-8 als einer seiner Vertreter ist in vieler Hinsicht einfacher zu handhaben als die Vielzahl länderspezifischer Zeichensätze. Wie … [...]
Die Info habe ich gerade gebraucht. Danke!