Sep

04

Gentoo auf UTF-8/Unicode umstellen

Posted by : Florian Löffler | On : 04.09.2006


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:

Locale

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-gen ausfü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.

Tastaturlayout

/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=""

explizites Umschalten auf Unicode (UNICODE_START)

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

MAN-Pages auf UTF-8 umstellen:

Die Zeile “NROFF /usr/bin/nroff -Tascii -c -mandoc” ersetzen durch “NROFF /usr/bin/nroff -mandoc -c

Apache2

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

Vim

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

Less

/etc/env.d/70less:

LESSCHARSET="utf-8"

Screen

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

Midnight Commander

“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

“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*

Textdateien konvertieren

Um alte Texte auf den neuen Zeichsatz zu konvertieren kann recode benutzt werden.

recode iso8859-1..utf8 plain-text-file.txt

Dateinamen konvertieren

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

Comments (12)

  1. Alexsmbvc said on 11. Februar 2007

    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!

  2. s0x said on 7. Mai 2007

    Sehr gute Arbeit.
    Kurz und bündig alles notwendige zusammengefasst! Findet man nicht oft ;)

    Greatz

    s0x

  3. flo said on 8. Mai 2007

    Danke, danke ;)
    Lob hört man immer gerne.

  4. Loci said on 7. Juni 2007

    Von mir auch ein Lob und eine Frage: in welchem Paket gibt es convmv?

    Grüße
    Loci

  5. moettti said on 7. Juli 2007

    Super Howto, danke.
    Hi Loci, convmv ist bereits der Paketname.

    $> emerge -av app-text/convmv

  6. firex said on 11. Juli 2007

    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/

  7. flo said on 11. Juli 2007

    Danke für den Tipp, habe noch eben den Link dazu eingefügt ;)

  8. paul said on 5. September 2007

    Der mc bestand bei mir auf
    euse -E slang && emerge sys-libs/slang

  9. Spacecooky said on 6. August 2009

    Danke für diese Anleitung!

  10. Achim said on 9. Dezember 2011

    …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!

  11. Gentoo utf8 | Carbuyerpro said on 28. September 2012

    [...] 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 … [...]

  12. Arne Babenhauserheide said on 15. Februar 2013

    Die Info habe ich gerade gebraucht. Danke!

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.