我一直试图将我的语言环境设置为en_US.UTF-8没有任何成功。基于互联网上的其他答案,我应该首先生成语言环境
sudo locale-gen en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
然后应用它
sudo dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)
但是,运行会locale-gen做一些奇怪的事情:
user@Host /home/user $ sudo locale-gen en_US.UTF-8
Generating locales (this might take a while)...
en_US.ISO-8859-1... done
Generation complete.
Run Code Online (Sandbox Code Playgroud)
如您所见,它实际上从未生成 UTF-8,而是不断回退到 ISO-8859-1。我永远无法设置LC_ALL为en_US.UTF-8,可能是因为它无法生成。
难道我做错了什么?我正在运行 Debian 8.1。
Gil*_*il' 35
您已经尝试在 Debian 下为 Ubuntu 应用一个秘诀。这通常有效,但在这种特定情况下却无效。
Ubuntu 源自 Debian,除了安装程序和 GUI 之外没有太大变化。该locale-gen命令是,它改变了那几个其他的事情之一。我不知道为什么。
在 Debian 下,该locale-gen命令不接受任何参数并根据配置的语言环境列表重新生成已编译的语言环境定义。要修改要使用的语言环境选择,请编辑文件/etc/locale.gen然后运行locale-gen命令。或者,dpkg-reconfigure locales以 root 身份运行,选择您想要的其他语言环境(并取消选择您不想要的语言环境),然后按 OK。
在 Ubuntu 下,如果您locale-gen不带参数运行该命令,它会根据配置的语言环境列表重新生成已编译的语言环境定义。但是如果你传递一些参数,它们会被添加到列表中并立即生成。语言环境列表保存在/var/lib/locales/supported.d/local. 运行dpkg-reconfigure locales只会重新生成已编译的语言环境,而不会让您有机会修改选择。
总之,要添加en_US.UTF-8到可用语言环境列表中:
dpkg-reconfigure localessed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen && locale-genlocale-gen en_US.UTF-8在实际阅读了 locale-gen 的 man 文件而不是盲目地相信互联网之后,我发现locale-gen实际上需要语言环境从/etc/locale.gen. 通过在en_US.UTF-8那里取消注释,我设法生成了它。