如何在语言环境中设置 LANG,尽管它位于 ubuntu 中的 /etc/default/locale 中以获得 unicode 支持?

如何在语言环境中设置 LANG,尽管它位于 ubuntu 中的 /etc/default/locale 中以获得 unicode 支持?

我运行Ubuntu 12.04,无法将语言环境设置为en_US.utf8。我通过按照描述的LANG配置来设置/etc/default/locale这里

$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

但它不起作用,正如您在上面看到的。如何将此LANG变量设置为en_US.utf8

我问的原因是,当我运行时echo -e "\x03\bb",我得到了unicode greek letter lambda symbol正确的显示,但我的问题出在 emacs 上。在emacs中,我无法显示unicode符号,例如:C-x 8 RET 03bboutputs \u03bb,而不是greek letter lambda symbol.我认为问题出在这些区域设置上,但我无法设置它们。

编辑: 我想问题已经解决了。

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

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

对我来说,解决方案是,我使用 mintty ssh 进入Ubuntu 12.04 Server Edition,所以我必须配置~/.pam_environment~/.etc/ssh_config,和~/bashrc。但我对 emacs 的真正问题与这个 ubuntu 配置无关,所以我不知道这个 LANG变量配置的用途是什么,也不知道我是否将其设置为正确的值。

编辑2: 以下是我按照 #ubuntu irc 频道的 ansivirus 的建议解决此问题所采取的步骤:

将其添加到~/.bash_profile

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

将其添加到~/.pam_environment(所以这一定是有问题的)

LANG=en_US
LANGUAGE=en_US

将其添加到/etc/ssh/sshd_config

UsePAM yes

将此注释掉在/etc/ssh/ssh_config

#   SendEnv LANG LC_*

答案1

尝试重新安装locales

apt-get install --reinstall locales

阅读更多这里

相关内容