Wie setze ich LANG im Gebietsschema, obwohl es in / etc / default / locale in Ubuntu für die Unicode-Unterstützung ist?

8

Ich renne Ubuntu 12.04, ich kann das Gebietsschema nicht festlegen en_US.utf8. Ich stelle das LANGdurch Konfigurieren /etc/default/localewie hier beschrieben ein .

$cat /etc/default/locale
LANG=en_US.utf8
$locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=POSIX

Aber es funktioniert nicht, wie Sie oben sehen können. Wie setze ich diese LANGVariable auf en_US.utf8?

Der Grund, den ich frage, ist, dass beim Ausführen echo -e "\x03\bb"eine unicode greek letter lambda symbolAnzeige korrekt angezeigt wird, mein Problem jedoch bei Emacs liegt. In den Emacs kann ich keine Unicode-Symbole anzeigen, z. B.: C-x 8 RET 03bbAusgänge \u03bbanstelle von a greek letter lambda symbol. Ich dachte, das Problem liegt bei diesen Gebietsschemaeinstellungen, aber ich kann sie nicht festlegen.

Edit : Ich denke das Problem ist behoben.

$su $USER -c 'env; echo ==; locale' | egrep '==|LANG'

LANG=en_US
LANGUAGE=en_US
==
LANG=en_US
LANGUAGE=en_US

Die Lösung für mich war, dass ich mintty zum ssh verwendete Ubuntu 12.04 Server Edition, also musste ich ~/.pam_environmentund ~/.etc/ssh_configund konfigurieren ~/bashrc. Mein eigentliches Problem mit Emacs war jedoch nicht diese Ubuntu-Konfiguration, daher habe ich keine Ahnung, wofür diese LANGVariablenkonfiguration verwendet wird oder ob ich sie auf korrekte Werte setze.

Bearbeiten 2: Hier sind die Schritte, die ich unternommen habe, um dieses Problem zu lösen, indem ich den Vorschlägen von Ansivirus aus dem #ubuntu irc-Kanal gefolgt bin:

Fügen Sie dies hinzu ~/.bash_profile

export LANGUAGE="en"
export LANG="C"
export LC_MESSAGES="C"

Fügen Sie dies hinzu ~/.pam_environment(dies muss also problematisch sein)

LANG=en_US
LANGUAGE=en_US

Fügen Sie dies hinzu /etc/ssh/sshd_config

UsePAM yes

Kommentieren Sie dies aus /etc/ssh/ssh_config

#   SendEnv LANG LC_*
user3995789
quelle
Was ist die Ausgabe von su $USER -c 'env; echo ==; locale' | egrep '==|LANG'? Verwenden Sie die Standard-GUI-Umgebung (Unity), wenn nicht, was verwenden Sie und welchen Display-Manager?
Gilles 'SO - hör auf böse zu sein'
Ist LANGvorhanden, wenn Sie ausgeführt werden, suaber nicht, wenn Sie sich dann über SSH anmelden? Was hast du geändert? Beachten Sie, dass dies en_USkein Unicode-Gebietsschema ist.
Gilles 'SO - hör auf böse zu sein'
@ Gilles, siehe meine edit2 bitte. Nachdem ich diese Schritte jetzt unternommen habe, ist LANG eine Art Geschenk, denke ich, aber ich weiß nicht, welchen Einfluss es hat, und es ist mir egal, weil Emacs behoben ist und ich die Unicode-Zeichen gut sehen kann. Ich würde mich über eine Erklärung freuen, was Diese Variablen bedeuten und was sie beeinflussen, danke.
user3995789
Beachten Sie auch, dass dies mein Emacs-Problem nicht behoben hat, es war schließlich ein Emacs-Problem.
user3995789
1
Vielleicht im Zusammenhang mit: Die korrekte Schreibweise für das Gebietsschema ist AFAIK en_US.UTF-8, nicht .utf8
Jan Henke

Antworten:

0

Versuchen Sie erneut zu installieren locales

apt-get install --reinstall locales

Lesen Sie hier mehr .

Володимир Вонс
quelle