Wie kann ich die UTF-8-Unterstützung in der Linux-Konsole aktivieren?

12

Im Moment sieht es so aus:

Geben Sie hier die Bildbeschreibung ein

Mihai
quelle
Es ist ein echtes 80x25-Textmodus-Terminal, sodass Sie nicht mehr als 256 Zeichen verwenden können. Verwenden Sie die Framebuffer-Konsole, wenn Sie echtes utf-8 möchten.
Ipor Sircer

Antworten:

6

Sicher (die Anzahl der Glyphen ist begrenzt, aber anscheinend verwendet Ihr Gebietsschema die UTF-8-Codierung).

Ich benutze dies zum Testen:

#!/bin/sh
# send character-string to enable UTF-8 mode
if test ".$1" = ".off" ; then
    printf '\033%%@'
else
    printf '\033%%G'
fi

und (nennt es "utf8"), "utf8 on" schaltet die Codierung ein.

Im folgenden pstreeBeispiel finden Sie nach dem Ausführen des Skripts ein Beispiel (zuvor dieselbe Art von Ausgabe wie in der Frage):

Screenshot nach "utf8 on"

Wie in einem Kommentar erwähnt, gibt es ein Skript, unicode_startdas mehr kann , aber alles, was zur Beantwortung der gestellten Frage benötigt wird, ist das kleine Skript, das als Beispiel verwendet wird.

Adressierung eines anderen Kommentars: Zumindest auf meinem System (und in dem in der Frage gezeigten Screenshot) werden alle von verwendeten Zeichen pstreein der 512-Glyphen-Schriftart angegeben, die standardmäßig für die Unicode-Unterstützung in der Linux-Konsole verwendet wird.

Weiterführende Literatur:

Thomas Dickey
quelle
3
Der Fragesteller scheint Debian 7 auszuführen. Das hat unicode_startin seinem kbdPaket etwas mehr als Ihr Skript.
JdeBP
13

Überprüfen Sie, ob Sie das localesPaket installiert haben

dpkg -l locales

Wenn nicht, installieren Sie es

apt-get install locales

Geben Sie als root ein

dpkg-reconfigure locales

Sie können in dieser Liste mit den Aufwärts- / Abwärtspfeiltasten navigieren, z. B. auswählen en_US-UTF-8

Bearbeiten Sie Ihre, .bashrcindem Sie die folgenden Zeilen hinzufügen:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

Führen Sie den localeBefehl aus. Die Ausgabe sollte folgendermaßen aussehen:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
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=
GAD3R
quelle
2
Ich habe das Paket installiert - ich denke, es kommt standardmäßig mit Debian Wheezy. Es ist nur so, dass sich die Konsole nicht im UTF-8-Modus befand.
Mihai