Corro Ubuntu 12.04
, non riesco a impostare le impostazioni internazionali su en_US.utf8
. Ho impostato LANG
configurando /etc/default/locale
come descritto qui .
$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
Ma non funziona, come puoi vedere sopra. Come imposto questa LANG
variabile su en_US.utf8
?
Il motivo che sto chiedendo è che, quando corro echo -e "\x03\bb"
, unicode greek letter lambda symbol
visualizzo correttamente, ma il mio problema è con emacs. In emacs, non riesco a visualizzare simboli unicode, ad esempio: C-x 8 RET 03bb
output \u03bb
, anziché a greek letter lambda symbol
. Ho pensato che il problema riguardasse queste impostazioni locali, ma non riesco a configurarle.
Modifica : penso che il problema sia stato risolto.
$su $USER -c 'env; echo ==; locale' | egrep '==|LANG'
LANG=en_US
LANGUAGE=en_US
==
LANG=en_US
LANGUAGE=en_US
La soluzione per me era che stavo usando mintty per ssh Ubuntu 12.04
Server Edition
, quindi ho dovuto configurare ~/.pam_environment
e
~/.etc/ssh_config
, e ~/bashrc
. Ma il mio vero problema con emacs non riguardava questa configurazione di Ubuntu, quindi non ho idea di cosa LANG
venga utilizzata questa
configurazione variabile o se la imposto su valori corretti.
Modifica 2: Ecco i passaggi che ho seguito per risolverlo, seguendo i suggerimenti di ansivirus dal canale irub #ubuntu:
Aggiungi questo a ~/.bash_profile
export LANGUAGE="en"
export LANG="C"
export LC_MESSAGES="C"
Aggiungi questo a ~/.pam_environment
(quindi questo deve essere problematico)
LANG=en_US
LANGUAGE=en_US
Aggiungi questo a /etc/ssh/sshd_config
UsePAM yes
Commenta questo in /etc/ssh/ssh_config
# SendEnv LANG LC_*
LANG
presente quando si esegue su
ma non quando si accede tramite SSH allora? Che cosa hai cambiato? Si noti che en_US
non è una locale Unicode.
su $USER -c 'env; echo ==; locale' | egrep '==|LANG'
? Stai utilizzando l'ambiente GUI predefinito (Unity), se non cosa stai usando, e quale display manager?