当我运行perl时,我得到警告:

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

我该怎么解决呢?


当前回答

对于任何从iTerm2连接到DigitalOcean或其他云托管提供商的人。在macOS v10.13 (High Sierra)上运行app,在一些命令上得到这个错误:

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 a fallback locale ("en_US.UTF-8").

这为我解决了问题:

其他回答

每当我在最新的Kali Linux版本上运行Perl脚本(比如enum4linux)时,都会遇到这个问题。

kali@kali:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Kali
Description:    Kali GNU/Linux Rolling
Release:    2020.3
Codename:    kali-rolling
kali@kali:~$

例如,

kali@kali:~$ enum4linux
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_ADDRESS = "ms_MY.UTF-8",
    LC_NAME = "ms_MY.UTF-8",
    LC_MONETARY = "ms_MY.UTF-8",
    LC_PAPER = "ms_MY.UTF-8",
    LC_IDENTIFICATION = "ms_MY.UTF-8",
    LC_TELEPHONE = "ms_MY.UTF-8",
    LC_MEASUREMENT = "ms_MY.UTF-8",
    LC_TIME = "ms_MY.UTF-8",
    LC_NUMERIC = "ms_MY.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
enum4linux v0.8.9 (http://labs.portcullis.co.uk/application/enum4linux/)
Copyright (C) 2011 Mark Lowe (mrl@portcullis-security.com)

请看给出的警告信息。

perl: warning: Falling back to a fallback locale ("en_US.UTF-8").

另外,注意LC_ALL = (unset)

解决办法很简单。你所要做的就是设置它。

export LC_ALL=en_US.UTF-8

例如,

kali@kali:~$ export LC_ALL=en_US.UTF-8
kali@kali:~$

问题解决了

kali@kali:~$ enum4linux
enum4linux v0.8.9 (http://labs.portcullis.co.uk/application/enum4linux/)
Copyright (C) 2011 Mark Lowe (mrl@portcullis-security.com)

对于永久解决方案,您可能希望将其添加到.bashrc文件中。

这通常意味着您还没有正确地在Linux机器上设置区域设置。

在Debian或Ubuntu上,这意味着你需要去做

$ sudo locale-gen
$ sudo dpkg-reconfigure locales

另参见man locale-gen。

另一个与git相关的答案:

问题的根源可能是Git服务器。如果所有这些都失败了,请尝试在服务器上执行dpkg-reconfigure区域设置(或适合您的发行版的任何设置)。

Debian GNU/Linux 11(靶心)

我在GCP中创建一个全新的VM实例后遇到了这个问题。

基本上,我刚刚运行了以下程序

$ sudo apt-get update
$ sudo apt-get upgrade

这里我得到了错误

perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LC_TERMINAL = "iTerm2",
LANG = "C"
are supported and installed on your system.

以下是我的解决方法。

首先安装区域设置。

$ sudo apt-get install locales

打开语言环境文件(使用您喜欢的编辑器)。

$ sudo nano /etc/default/locale

添加以下内容并保存。

LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8

执行以下命令。

$ sudo localedef -i en_US -f UTF-8 en_US.UTF-8

重新启动终端。 运行命令测试并通过ctrl + d关闭它。

$ perl

注意: 我创建了一个实例来测试我的解决方案,以确保。如果对你不起作用请告诉我。

我希望这对你有所帮助。

对我来说,我通过编辑.bashrc文件,添加导出来修复这个错误。添加在最初的注释之后。

添加语言支持。

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