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

我该怎么解决呢?


当前回答

前面的答案都是错的。消息是明确的-缺少区域设置。解决方案是添加适当的区域设置。您可以通过编辑/etc/locale.生成文件,删除被报告为缺失的地区前面的#符号,然后发出命令:

$ sudo locale-gen

这将实际生成在/etc/locale.中指定的地区Gen,因此消息将不会显示。

其他回答

Use:

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

它适用于Debian。我不知道为什么,但是locale-gen没有结果。

重要!这是暂时的解决办法。它必须在每个会话中运行。

如果您正在使用反引导创建rootfs,则需要生成区域设置。你可以通过运行:

# (optional) enable missing locales
sudo nano /etc/locale.gen

# then regenerate
sudo locale-gen

这个技巧来自https://help.ubuntu.com/community/Xen

您需要在/etc/default/locale中适当地配置语言环境、注销、登录,然后运行常规命令

root@host:~# echo -e 'LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8' > /etc/default/locale
root@host:~# exit
local-user@local:~$ ssh root@host
root@host:~# locale-gen en_US.UTF-8
root@host:~# dpkg-reconfigure locales

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

如果有人有一台带有Strato的服务器并试图找出这个问题,请检查/etc/profile.我在重新生成区域设置和设置变量太长时间之前,我发现在这个文件的末尾有两行覆盖了我的区域设置。