如何修复区域设置错误

use*_*227 11 locale kubuntu 14.04

我刚刚使用debootstrap. 当我这样做时sudo aptitude upgrade,我收到此错误消息:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US:en",
    LC_ALL = (unset),
    LANG = "en_US.ISO-8859-1"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何解决这个问题吗?我在网上看到很多类似的帖子,但似乎没有一个能解决问题。

我正在使用Ubuntu 14.04 LTS. 谢谢。


供参考:

$ locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.iso88591
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX
Run Code Online (Sandbox Code Playgroud)

$ locale
LANG=en_US.ISO-8859-1
LANGUAGE=en_US:en
LC_CTYPE="en_US.ISO-8859-1"
LC_NUMERIC="en_US.ISO-8859-1"
LC_TIME="en_US.ISO-8859-1"
LC_COLLATE="en_US.ISO-8859-1"
LC_MONETARY="en_US.ISO-8859-1"
LC_MESSAGES="en_US.ISO-8859-1"
LC_PAPER="en_US.ISO-8859-1"
LC_NAME="en_US.ISO-8859-1"
LC_ADDRESS="en_US.ISO-8859-1"
LC_TELEPHONE="en_US.ISO-8859-1"
LC_MEASUREMENT="en_US.ISO-8859-1"
LC_IDENTIFICATION="en_US.ISO-8859-1"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

Gun*_*son 11

Ubuntu 桌面应设置为 UTF-8 编码。出于某种原因,您的系统尝试设置 latin1 语言环境 en_US.ISO-8859-1。你真的应该改变它。

也许设置发生在/etc/default/locale.

无论发生在哪里,将其更改为

LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

否则你会遇到各种与语言环境相关的惊喜。


Aje*_*han 8

语言环境问题的永久解决方案是导出.bash_profile文件中的语言环境变量。您也可以使用/etc/profilefile 而不是.bash_profile.

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

不要忘记source.bash_profile,按照剧本中易于安装。

这是修复语言环境问题的脚本


小智 6

debootstrap不创建一个语言环境。所以我们使用其他东西作为语言环境。使用这个命令:

sudo locale-gen en_US.ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!

  • 虽然这可能会解决区域设置错误,但它为您提供了一个带有 latin1 编码的系统,这不适用于 Ubuntu。 (2认同)