Debian/Linux: locale UTF-8 Support mit de_DE.UTF-8 konfigurieren

Eine standardmäßige Debian-Linux (Lenny) Version wird grundsätzlich mit einem englischen Zeichensatz (en_US.UTF-8) installiert. Gerade bei Webservern mit deutschsprachigen Seiten und Monatsnamen ist es eher untypisch, dass englische Monatsnamen wie "October" oder "December" ausgegeben werden. Die Ausgabe soll natürlich in deutsch erfolgen und es gibt zahlreiche Wege um die "locale" zu setzen.

Ein einfacher und schneller Weg ist die erneute Konfiguration der "locale" Umgebung mittels "dpkg-reconfigure locales". Der Paketverwalter "dpkg" für Debian ermöglicht das erneute Konfigurieren der Sprachumgebung, bzw. Systemumgebung für das gesamte Debian (lenny)-Betriebssystem.

Wie kann die aktuelle Sprachumgebung ermittelt werden?
Mit dem Befehl locale wird abgefragt, welcher Zeichensatz gerade am System (z.B. Debian (lenny)) aktiv ist.
Die Ausgabe sollte so aussehen:

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

Wir sehen, dass die "default" Sprachumgebung unseres Debian (lenny)-Systems auf "en_US.UTF-8" eingestellt ist.
Dies hat zur Folge, dass alle Umlaute und Sonderzeichen aus dem deutschen Sprachgebrauch kryptisch oder fehlerhaft ausgegeben werden können.
Wie auch zu Beginn angesprochen, werden die Monatsnamen via Apache/PHP über die Systemumgebung ermittelt und ausgegeben.

Mit folgendem Befehl können wir die Zeichensätze neu konfigurieren: dpkg-reconfigure locales.
Es folgt ein Dialog in dem die neuen Zeichensätze ausgewählt werden müssen. Ist die Konfiguration abgeschlossen, müsst ihr euch mit eurem SSH-Terminal (z.B. PuTTY) neu verbinden, folglich eine neue Session starten. - Denn erst dann wird auch die Sprachumgebung neu geladen.

Eure Ausgabe sollte nun wie folgt aussehen:

myserver:~$ locale
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

Tags: , , , , , , , ,

Hinterlasse eine Nachricht