当我运行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").

我该怎么解决呢?


当前回答

仅适用于macOS和Mac OS X用户

我在使用Git时也得到了同样的警告

要解决此警告,取消选中“在启动时设置语言环境变量”选项并重新启动终端。下面的屏幕截图代表了我的终端设置。

其他回答

对于Ubuntu Server和Debian:

不需要在bashrc中创建导出或处理dpkg-reconfigure。

只需将/etc/default/locale的内容替换为:

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

添加LC_ALL = " en_GB。Utf8”到/etc/environment并重新启动。这是所有。

在我的情况下,使用Debian 8.6 (Jessie),我必须更改设置:

/etc/ssh/ssh_config` for `#AcceptEnv LANG LC_*

and

sshd_config为SendEnv LANG LC_*

然后重新启动ssh服务。

最后,我做到了:

locale-gen en_US。UTF-8和dpkg-reconfigure区域设置

在我的例子中,这是输出:

LANGUAGE = (unset),
LC_ALL = (unset),
LC_PAPER = "ro_RO.UTF-8",
LC_ADDRESS = "ro_RO.UTF-8",
....

解决方案是:

sudo locale-gen ro_RO.UTF-8

问题的根源

我经历过,通过ssh从一台机器登录到另一台机器。远程机器没有本地机器上的locale文件。您可以禁用区域设置从本地机器转发到远程机器(在文件/etc/ssh/sshd_config中删除AcceptEnv LANG LC_CTYPE…)或安装区域设置(在本例中不需要更改它)。

安装

我使用的Fedora、Red Hat Linux和CentOS

sudo dnf install langpacks-de

德语(de)语言包。我登出,登陆,成功了。

搜索使用的其他langpacks

dnf search langpacks-

改变/激活

列出我使用的可用区域设置

localectl list-locales

并设置一个新的

sudo localectl set-locale de_DE.utf8