我该如何修复我的语言环境配置?

我该如何修复我的语言环境配置?

你好。运行时我收到一些警告perl

perl -e 'print "Hello\n";'
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

跑步:

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

修复当前 shell 会话的警告

有什么永久的解决办法吗?

答案1

尝试dpkg-reconfigure locales

答案2

所以我遇到了同样的问题,在 Debian 上可以使用update-locale实用程序解决

update-locale --reset

将导致/etc/default/locale文件被忽略(它只是注释掉变量LANG);结果如下locale

LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C

update-locale LANG=en_US.UTF-8

将设置LANGLANG...你猜对了,这en_US.UTF-8locale生成:

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

最后,为了涵盖我所有的基础...

update-locale LANG=C

LANG将设置LANGC导致locale输出:

LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

我也把这个放在了 unix 上,这样我就可以尝试提供帮助,因为这让我发疯了。强迫症等等。-Eric

相关内容