无法生成en_US.UTF-8语言环境


8

我一直在尝试将我的语言环境设置为en_US.UTF-8成功。根据互联网上的其他答案,我应该首先使用

sudo locale-gen en_US.UTF-8

然后用

sudo dpkg-reconfigure locales

但是,运行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.

如您所见,它实际上从未生成UTF-8,而是一直回落到ISO-8859-1。我永远无法设置LC_ALLen_US.UTF-8,可能是因为它无法生成。

难道我做错了什么?我正在运行Debian 8.1。

Answers:


28

您尝试在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到可用语言环境列表:

  • Debian,互动式: dpkg-reconfigure locales
  • Debian,自动化的: sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen && locale-gen
  • Ubuntu,自动化: locale-gen en_US.UTF-8

那么,您将如何添加软件包dpkg-reconfigure?我得到了交互式界面,但是当使用enter选择一个项目时,它没有安装。
Erik S

@ErikDolor我不明白你的问题。除非更改了debconf设置,否则dpkg-reconfigure locales将弹出一个文本模式对话框,其中包含可生成的每个语言环境的复选框。向下滚动至en_US.UTF-8,选中它,然后按确定按钮。
吉尔斯(Gillles)“所以-别再作恶了”

我尝试用回车按钮检查它,但显然可以按“确定”。
Erik S

2
@ErikDolor哦。按空格键切换复选框。
吉尔(Gilles)'所以

也适用于树莓杰西
Neo_Returns

5

在实际阅读了区域设置生成的man文件而不是盲目地信任互联网之后,我发现locale-gen实际上是从中生成了区域设置/etc/locale.gen。通过取消注释en_US.UTF-8,我设法生成了它。


sed -i'/^#.* es_ES / s / ^#//'/etc/locale.gen如果您使用的是
docker,

在搜寻了几天互联网之后,对我有用的唯一答案!!非常感谢!
I.Am.A. Guy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.