Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修复Perl中的区域设置警告_Perl_Locale - Fatal编程技术网

如何修复Perl中的区域设置警告

如何修复Perl中的区域设置警告,perl,locale,Perl,Locale,当我运行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 ba

当我运行
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"). perl:警告:设置区域设置失败。 perl:警告:请检查您的区域设置: 语言=(未设置), LC_全部=(未设置), LANG=“en_US.UTF-8” 您的系统支持并安装了。 perl:警告:返回到标准语言环境(“C”)。
如何修复它?

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

在Debian或Ubuntu上,这意味着您需要

$ sudo locale-gen $ sudo dpkg-reconfigure locales $sudo区域设置gen $sudo dpkg重新配置区域设置
另请参见。

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

在Debian或Ubuntu上,这意味着您需要

$ sudo locale-gen $ sudo dpkg-reconfigure locales $sudo区域设置gen $sudo dpkg重新配置区域设置
另请参见。

您的操作系统不知道en_US.UTF-8

您没有提到具体的平台,但我可以重现您的问题:

% uname -a OSF1 hunter2 V5.1 2650 alpha % perl -e exit perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). 它允许客户端将这些环境变量的值传播到新会话中

如果不需要完整的区域设置,该警告将提示您如何抑制该警告:

% env LANG=C perl -e exit % %env LANG=C perl-e exit % 或者使用Bash:

$ LANG=C perl -e exit $ $LANG=C perl-e退出 $ 要获得永久修复,请选择以下选项之一:

  • 在旧主机上,在shell的初始化文件中设置
    LANG
    环境变量
  • 在客户端修改您的环境,例如,使用命令
    LANG=csh-hunter2
    而不是
    ssh-hunter2
  • 如果您具有管理员权限,请在本地
    /etc/ssh/ssh\u config
    文件中注释掉
    SendEnv LANG LC.*
    行,以阻止ssh发送环境变量。(有关更多信息,请参阅以获取OpenSSH。)

  • 您的操作系统不知道en_US.UTF-8的相关信息

    您没有提到具体的平台,但我可以重现您的问题:

    % uname -a OSF1 hunter2 V5.1 2650 alpha % perl -e exit perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). 它允许客户端将这些环境变量的值传播到新会话中

    如果不需要完整的区域设置,该警告将提示您如何抑制该警告:

    % env LANG=C perl -e exit % %env LANG=C perl-e exit % 或者使用Bash:

    $ LANG=C perl -e exit $ $LANG=C perl-e退出 $ 要获得永久修复,请选择以下选项之一:

  • 在旧主机上,在shell的初始化文件中设置
    LANG
    环境变量
  • 在客户端修改您的环境,例如,使用命令
    LANG=csh-hunter2
    而不是
    ssh-hunter2
  • 如果您具有管理员权限,请在本地
    /etc/ssh/ssh\u config
    文件中注释掉
    SendEnv LANG LC.*
    行,以阻止ssh发送环境变量。(有关更多信息,请参阅以获取OpenSSH。)

  • 以下是如何在(Lion)或Cygwin(Windows 10)上解决此问题:

    将以下行添加到主机上的bashrc或bash_配置文件中:

    # Setting for the new UTF-8 terminal support in Lion
    export LC_CTYPE=en_US.UTF-8
    export LC_ALL=en_US.UTF-8
    
    如果正在使用(zsh),请编辑文件zshrc:


    以下是如何在(Lion)或Cygwin(Windows 10)上解决此问题:

    将以下行添加到主机上的bashrc或bash_配置文件中:

    # Setting for the new UTF-8 terminal support in Lion
    export LC_CTYPE=en_US.UTF-8
    export LC_ALL=en_US.UTF-8
    
    如果正在使用(zsh),请编辑文件zshrc:


    如果使用debootstrap创建rootfs,则需要生成区域设置。您可以通过运行以下命令来执行此操作:

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

    此技巧来自,

    如果您使用debootstrap创建rootfs,则需要生成区域设置。您可以通过运行以下命令来执行此操作:

    # (optional) enable missing locales
    sudo nano /etc/locale.gen
    
    # then regenerate
    sudo locale-gen
    
    此提示来自,

    仅适用于macOS和MacOSX用户 我在使用时收到了同样的警告

    要解决此警告,请取消选中
    启动时设置语言环境变量
    选项,然后重新启动终端。下面的屏幕截图表示我的终端设置

    仅适用于Mac OS和Mac OS X用户 我在使用时收到了同样的警告

    要解决此警告,请取消选中
    启动时设置语言环境变量
    选项,然后重新启动终端。下面的屏幕截图表示我的终端设置


    将以下内容添加到
    /etc/environment
    解决了我在Debian和Ubuntu上遇到的问题(当然,修改以匹配您想要使用的语言环境):


    将以下内容添加到
    /etc/environment
    解决了我在Debian和Ubuntu上遇到的问题(当然,修改以匹配您想要使用的语言环境):


    以下是公认的答案:

    LANG=csh-hunter2

    LC_ALL=C ssh hunter2


    客户端为我做了这件事。

    以下是公认的答案:

    LANG=csh-hunter2

    LC_ALL=C ssh hunter2

    客户端为我做了这件事。

    使用:

    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
    
    它对我有用。我不知道为什么-但LocaleGen没有结果

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

    使用:

    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
    
    它对我有用。我不知道为什么-但LocaleGen没有结果


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

    您需要在
    /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
    

    您需要在
    /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
    
    取消注释要使用的区域设置(例如
    en_US.UTF-8 UTF-8
    ):

    然后运行:

    sudo /usr/sbin/locale-gen
    
    资料来源:

    取消注释要使用的区域设置(例如
    en_US.UTF-8 UTF-8
    ):

    然后运行:

    sudo /usr/sbin/locale-gen
    

    资料来源:

    一如既往,魔鬼在于细节

    在(Lion)上,为了修复一些错误,在我的
    ~/.bash\u配置文件中,我设置了:

    export LANG=en_EN.UTF-8
    export LC_COLLATE=$LANG
    export LC_CTYPE=$LANG
    export LC_MESSAGES=$LANG
    export LC_MONETARY=$LANG
    export LC_NUMERIC=$LANG
    export LC_TIME=$LANG
    export LC_ALL=$LANG
    
    在很长一段时间里,我在使用Perl时收到了这个警告

    我的错!正如我后来意识到的,我的系统是
    en_US.UTF-8
    ! 我只是通过从

    export LANG=en_EN.UTF-8
    


    和往常一样,魔鬼在于细节

    在(Lion)上,为了修复一些错误,在我的
    ~/.bash\u配置文件中,我设置了:

    export LANG=en_EN.UTF-8
    export LC_COLLATE=$LANG
    export LC_CTYPE=$LANG
    export LC_MESSAGES=$LANG
    export LC_MONETARY=$LANG
    export LC_NUMERIC=$LANG
    export LC_TIME=$LANG
    export LC_ALL=$LANG
    
    然后很长一段时间我就明白了
    sudo locale-gen en_US en_US.UTF-8
    sudo dpkg-reconfigure locales
    
    $ cat /etc/environment
    ...
    LC_ALL=en_US.UTF-8
    LANG=en_US.UTF-8
    
    $ locale
    locale: Cannot set LC_ALL to default locale: No such file or directory
    LANG=en_US.UTF-8
    LANGUAGE=
    LC_CTYPE=en_US.UTF-8
    LC_NUMERIC=ru_RU.UTF-8
    LC_TIME=ru_RU.UTF-8
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY=ru_RU.UTF-8
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER=ru_RU.UTF-8
    LC_NAME=ru_RU.UTF-8
    LC_ADDRESS=ru_RU.UTF-8
    LC_TELEPHONE=ru_RU.UTF-8
    LC_MEASUREMENT=ru_RU.UTF-8
    LC_IDENTIFICATION=ru_RU.UTF-8
    LC_ALL=
    
    $ sudo su
    
    # export LANGUAGE=en_US.UTF-8
    # export LANG=en_US.UTF-8
    # export LC_ALL=en_US.UTF-8
    
    # locale-gen en_US.UTF-8
    Generating locales...
      en_US.UTF-8... up-to-date
    Generation complete.
    
    # dpkg-reconfigure locales
    Generating locales...
      en_AG.UTF-8... done
      en_AU.UTF-8... done
      en_BW.UTF-8... done
      en_CA.UTF-8... done
      en_DK.UTF-8... done
      en_GB.UTF-8... done
      en_HK.UTF-8... done
      en_IE.UTF-8... done
      en_IN.UTF-8... done
      en_NG.UTF-8... done
      en_NZ.UTF-8... done
      en_PH.UTF-8... done
      en_SG.UTF-8... done
      en_US.UTF-8... up-to-date
      en_ZA.UTF-8... done
      en_ZM.UTF-8... done
      en_ZW.UTF-8... done
    Generation complete.
    
    # exit
    
    $ locale
    LANG=en_US.UTF-8
    LANGUAGE=en_US.UTF-8
    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=en_US.UTF-8
    
    export LANG="en_US"
    export LC_ALL=$LANG.UTF-8
    
    dpkg-reconfigure locales
    
    perl: warning: Falling back to the standard locale ("C").
    locale: Cannot set LC_ALL to default locale: No such file or directory
    
    sudo locale-gen uk_UA.UTF-8
    
    sudo dpkg-reconfigure locales
    
     # You may need to manually set your language environment
     LANGUAGE=en_US.UTF-8
     LANG=en_US.UTF-8
     LC_CTYPE=en_US.UTF-8
     LC_ALL=en_US.UTF-8
    
    /etc/ssh/ssh_config` for `#AcceptEnv LANG LC_*
    
    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").
    
    echo "export LANGUAGE=en_US.UTF-8
    export LANG=en_US.UTF-8
    export LC_ALL=en_US.UTF-8">>~/.bash_profile
    
    source ~/.bash_profile
    
    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
    
    LANG=en_US.UTF-8
    LANGUAGE=en_US:en
    LC_CTYPE=en_US
    
    $ . /etc/default/locale
    
    #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
    
    nano .bashrc
    
    export LC_ALL="en_US.UTF-8"
    export LANG="en_US.UTF-8"
    export LANGUAGE="en_US.UTF-8"
    
    source ~/.bashrc
    
    locale
    
    sudo dnf install langpacks-de
    
    dnf search langpacks-
    
    localectl list-locales
    
    sudo localectl set-locale de_DE.utf8
    
    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").
    
    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)
    
    $ 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
    
    $ sudo locale-gen
    $ sudo dpkg-reconfigure locales