Ubuntu 12.04语言环境编码设置没有被尊重,看到了很多

时间:2014-04-28 17:13:55

标签: bash utf-8 ubuntu-12.04 locale

我尝试使用名为bash-git-prompt的脚本来使git存储库更易于使用。这个脚本的部分功能是使用UTF-8图标来显示工作分支的状态,但是图标没有显示出来,而是我得到了"���"在他们的位置。在我看来,这是一个编码问题,符号没有被正确解释。

我跑了locale并意识到出现了问题,因为LANGLANGUAGELC_ALL是空白的,其他所有内容的值都为"POSIX"。我尝试将这些值设置为en_US.UTF-8,这会出现问题。更改/etc/environment/etc/default/locale不起作用,重启后locale的输出与以前相同。我最后将这些行添加到.bashrc

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

这已成功更新了区域设置,但我还没有看到像我应该看到的UTF-8字符。我现在的locale输出是:

$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
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=en_US.UTF-8

但是我一直都在看���。这是一个示例测试:

$ echo -e "\xE2\x98\xA0"
���

根据我的语言环境设置,我希望这个命令能给我骷髅和交叉骨符号☠。还有其他我在这里失踪的东西吗?

1 个答案:

答案 0 :(得分:0)

原来我必须转到menu -> terminal -> set character encoding来改变我的终端编码,UTF-8Current Locale的选项。所以我想现在我的问题变成了,我该如何将其作为默认值?当我打开一个新终端时,它默认返回en_US.UTF-8,无论出于何种原因,它都不会被识别为ANSIX3.4-1968,而是设置为UTF-8。如何确保{{1}}是默认设置?