Comment définir LANG dans les paramètres régionaux, bien qu'il soit dans / etc / default / locale dans ubuntu pour la prise en charge Unicode?

8

Je cours Ubuntu 12.04, je ne peux pas définir les paramètres régionaux sur en_US.utf8. J'ai défini le LANGen configurant /etc/default/localecomme décrit ici .

$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

Mais cela ne fonctionne pas, comme vous pouvez le voir ci-dessus. Comment définir cette LANGvariable sur en_US.utf8?

La raison pour laquelle je pose la question est que lorsque j'exécute echo -e "\x03\bb", j'obtiens un unicode greek letter lambda symbolaffichage correct, mais mon problème est avec emacs. Dans emacs, je ne peux pas afficher les symboles Unicode, par exemple: les C-x 8 RET 03bbsorties \u03bb, au lieu de a greek letter lambda symbol. Je pensais que le problème venait de ces paramètres régionaux, mais je ne peux pas les définir.

Edit : je pense que le problème est résolu.

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

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

La solution pour moi était que j'utilisais mintty pour ssh Ubuntu 12.04 Server Edition, donc j'ai dû configurer ~/.pam_environmentet ~/.etc/ssh_config, et ~/bashrc. Mais mon vrai problème avec emacs ne concernait pas cette configuration ubuntu, donc je n'ai aucune idée de l'utilisation de cette LANGconfiguration de variable ou si je la mets à des valeurs correctes.

Edit 2: Voici les mesures que j'ai prises pour résoudre ce problème, en suivant les suggestions d'ansivirus du canal #ubuntu irc:

Ajoutez ceci à ~/.bash_profile

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

Ajoutez ceci à ~/.pam_environment(cela doit donc être problématique)

LANG=en_US
LANGUAGE=en_US

Ajoutez ceci à /etc/ssh/sshd_config

UsePAM yes

Commentez ceci dans /etc/ssh/ssh_config

#   SendEnv LANG LC_*
user3995789
la source
Quelle est la sortie de su $USER -c 'env; echo ==; locale' | egrep '==|LANG'? Utilisez-vous l'environnement GUI par défaut (Unity), sinon ce que vous utilisez et quel gestionnaire d'affichage?
Gilles 'SO- arrête d'être méchant'
Est LANGprésent lorsque vous exécutez sumais pas lorsque vous vous connectez via SSH alors? Qu'avez-vous changé? Notez qu'il en_USne s'agit pas d'un environnement local Unicode.
Gilles 'SO- arrête d'être méchant'
@ Gilles, voir mon edit2 s'il vous plaît. Après avoir pris ces mesures maintenant, LANG est un peu présent, je pense, mais je ne sais pas quel effet cela a, et je m'en fiche parce qu'emacs est fixe et je peux voir les caractères unicode très bien, j'apprécierais une explication de ce ces variables signifient et ce qu'elles affectent cependant, merci.
user3995789
Notez également que cela n'a pas résolu mon problème emacs, c'était un problème emacs après tout.
user3995789
1
Peut-être lié à: L'orthographe correcte pour les paramètres régionaux est AFAIK en_US.UTF-8, pas .utf8
Jan Henke

Réponses:

1

Essayez de réinstaller locales

apt-get install --reinstall locales

En savoir plus ici .

Володимир Вонс
la source