如何修复Perl的语言环境设置警告?

xai*_*ain 559 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 back to the standard locale ("C").

我如何解决它?

All*_*rgi 458

以下是如何在Mac OS Lion(10.7)或Cygwin(Windows 10)上解决它:

将以下行添加到主机上的bashrc或bash_profile:

# Setting for the new UTF-8 terminal support in Lion
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

如果您使用的是zsh,请编辑zshrc:

# Setting for the new UTF-8 terminal support in Lion
LC_CTYPE=en_US.UTF-8
LC_ALL=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我已经搜索了这个问题的解决方案很长一段时间了,我一直认为这是我的Ubuntu服务器配置中的问题,似乎没有解决方案有帮助(所有dkpg重新配置的东西( (6认同)
  • 谢谢,这在ZSH和Mac OS X El Capitan下的oh-my-zsh插件上运行良好,位于〜/ .zshrc的底部:LC_CTYPE = en_US.UTF-8 LC_ALL = en_US.UTF-8 (5认同)
  • 因为`LC_ALL`会覆盖所有其他变量,所以我宁愿设置`LANG = de_AT.UTF-8`和各个变量,如`LC_MESSAGES = en_US.UTF-8`.如果未设置变量,则返回"LANG".你也可以.`unset LC_CTYPE`强制它回退到`LANG`. (4认同)
  • 将这些行放在.bashrc中不起作用,但是bash_profile解决了它!我不得不创建文件. (4认同)
  • 将这些行放在`〜/ .bashrc`中为我解决了...然后必须使用`source~/.bashrc`重新加载...... Thnks <3 (4认同)
  • 由于bash_profile仅由bash读取登录shell,因此该解决方案可能由于各种原因而失败(不是登录shell,不使用bash,也可能根本不从shell运行).最好更改`/ etc/default/locale`中的设置,这可以手动完成或使用`update-locale`完成. (2认同)

Gre*_*con 421

你的操作系统不知道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").

我的猜测是您使用ssh从较新的台式机连接到这台旧主机./etc/ssh/sshd_config包含它是很常见的

AcceptEnv LANG LC_*
Run Code Online (Sandbox Code Playgroud)

它允许客户端将这些环境变量的值传播到新会话中.

如果您不需要完整的语言环境,警告会提示您如何压制它:

% env LANG=C perl -e exit
%

或者使用bash:

$ LANG=C perl -e exit
$ 

要获得永久性修复,请选择其中一个

  1. 在较旧的主机上,LANG在shell的初始化文件中设置环境变量.
  2. 在客户端修改您的环境,例如,而不是ssh hunter2使用命令LANG=C ssh hunter2.
  3. 如果您具有管理员权限,请通过注释掉本地文件中的SendEnv LANG LC_*行来停止ssh发送环境变量.(感谢这个答案.有关更多内容,请参阅OpenSSH的Bug 1285.) /etc/ssh/ssh_config

  • 我有这个问题很久了,...从sshd_config中删除"AcceptEnv LANG LC_*"终于解决了它.谢谢你的暗示! (79认同)
  • @HermannIngjaldsson,至少在Ubuntu(12.10)上,没有必要重新启动服务器(在删除"AcceptEnv LANG LC_*"之后).我刚刚重新加载了ssh config:`service ssh reload`,这只需要几分之一秒,甚至不会导致当前的ssh会话终止. (24认同)
  • 谢谢!使用git连接到我的服务器时出现此错误消息.在使用`dpkg-reconfigure locales`添加de_CH.UTF-8(在那里不支持但在本地使用)之后,消息就消失了. (20认同)
  • 在客户端系统附加'export LC_ALL = C'然后'source~/.bashrc'解决问题. (3认同)
  • @Greg Bacon,您是否也想要在系统范围内设置环境变量,例如创建/ etc/environment文件?https://help.ubuntu.com/community/EnvironmentVariables#System-wide_environment_variables (2认同)
  • 使用git并在与远程交互时遇到此错误的人的另一个选择是在客户端计算机上的`/ etc/ssh/ssh_config`中注释掉`SendEnv LANG LC_*`. (2认同)
  • 或尝试 **fix 3.**: 添加通常由 ssh 客户端在 `/etc/locale.gen` 中设置的语言环境,然后运行 ​​`dpkg-reconfigure locales`。如果您知道哪些地区受到影响,这可能是侵入性最小的措施。 (2认同)
  • 在sshd_config中注释掉"AcceptEnv LANG LC_*",在主机上擦除了我的bash历史记录:(所以在做那些人之前先想想! (2认同)

小智 197

如果使用debootstrap创建rootfs,则需要生成语言环境.你可以通过运行:

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

# then regenerate
sudo locale-gen
Run Code Online (Sandbox Code Playgroud)

这个提示来自,https://help.ubuntu.com/community/Xen

  • 这对我来说是真正的解决方案. (27认同)
  • locale-gen不带任何参数(至少在Debian中稳定).相反,编辑/etc/locale.gen以取消注释所需的语言环境,然后运行sudo locale-gen (5认同)
  • 在Debian上,您可能需要首先执行`$ echo en_US UTF-8 >>/etc/locale.gen`. (4认同)
  • 固定在“ Ubuntu服务器”上 (2认同)
  • 在 Gentoo 上(至少),`locale-gen` 不接受参数。它从`/etc/locale.gen` 读取。 (2认同)
  • @akhmed你应该只需要取消注释行`# en_US.UTF-8 UTF-8`。 (2认同)

Pau*_*lin 138

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

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

$ sudo locale-gen
$ sudo dpkg-reconfigure locales

另见man locale-gen.

  • 这里没有解决问题 (28认同)
  • 这在Ubuntu 14.04中对我有用,虽然我不得不首先用`sudo locale-gen es_UY.UTF-8添加缺少的语言环境. (10认同)
  • dpkg-reconfigure locales - 修复了我的问题,debian 7.1 (6认同)
  • dpkg-reconfigure locales使用与首先尝试修复的perl语言环境错误消息相同的自身失败!!!! (3认同)
  • @matteo仅在第一次修复错误之前.再试一次,它应该是固定的. (2认同)

小智 134

使用:

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
Run Code Online (Sandbox Code Playgroud)

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

重要!这是一个临时解决方案.它必须在每个会话中运行.

  • 这个对我有用.我把它放到我的`.bashrc`文件中. (11认同)
  • 也为我工作过.我只需要设置Perl警告中未设置的两个设置(LANGUAGE和LC_ALL) (2认同)
  • 在Debian上,`local-gen`只处理在`/ etc/local.gen`中取消注释的语言环境.您可能需要首先执行`echo en_US UTF-8 >>/etc/locale.gen`. (2认同)

Ind*_*ore 88

仅适用于macOS和Mac OS X用户

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

解决此警告取消选中Set locale environment variable on startup选项并重新启动终端.屏幕截图下方代表我的终端设置.

在此输入图像描述

  • 我尝试了所有其他的但是这个为我做了.我使用iTerm,它具有相同的字符编码选项. (3认同)
  • 哇,这么简单,修复了我的问题!谢谢! (2认同)
  • 不幸的是,这打破了ZSH(标签停止工作) (2认同)
  • 是的。我使用 iTerm。擦除问题 Mac 系统设置修复了一些 Mac 崩溃问题,但在通过 Mac / iTerm 连接的长期稳定的 CentOS 服务器上运行 Perl 时导致了此问题。禁用连接时设置的自动区域设置修复了该问题。iTerm -&gt; 首选项 -&gt; 配置文件 -&gt; 终端 -&gt; 环境 -&gt; 自动设置语言环境变量。取消选中此项,然后重新启动 iTerm。 (2认同)

jfr*_*k53 35

它在Ubuntu中很简单.您必须从头开始生成Locales,从命令行运行以下命令:

sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)

这应创建语言环境,然后重新配置它们.


jos*_*son 26

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

LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_TYPE=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

  • ..我收到一条警告说不推荐在`/ etc/environment`中设置区域设置,而应该在`/ etc/default/locale`中设置.两者似乎现在都有效. (6认同)

war*_*iuc 25

我现在用这个:

$ cat /etc/environment
...
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

然后注销SSH会话并再次登录.

老答案:

只有这帮助了我:

$ 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
Run Code Online (Sandbox Code Playgroud)


tkj*_*jef 20

在经过多次搜索之后,在Debian上做到了这一点.

第一:

sudo apt-get purge locales
Run Code Online (Sandbox Code Playgroud)

然后:

sudo aptitude install locales
Run Code Online (Sandbox Code Playgroud)

和着名的:

sudo dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)

这会解决语言环境系统,然后重新安装语言环境并将libc6从2.19降级到2.13,这就是问题所在.然后再次配置语言环境.

  • dpkg-reconfigure语言环境应该是所有需要的.在您尝试了100次并环顾互联网之后,这就是您所见过的所有问题仍然无法自行解决,请尝试以上操作.然后回来并提出这个问题.:) (6认同)
  • `dpkg-reconfigure locales`就是所需要的.`sudo`如果你是sudo类型的人,或者以root身份执行.然后根据shell环境中的内容选择您的语言环境. (4认同)

Alo*_*nes 14

这是一个快速的答案。我们将设置重启后未设置的语言环境。首先打开bash文件并对其进行编辑:

nano .bashrc
Run Code Online (Sandbox Code Playgroud)

将这些行添加到文件中:

export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"
export LANGUAGE="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)

通过重新加载bash激活更改:

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

检测结果 :

locale
Run Code Online (Sandbox Code Playgroud)


小智 13

对于Ubuntu使用这个,

#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
Run Code Online (Sandbox Code Playgroud)

为我工作.


Dav*_*les 13

对于 Ubuntu 服务器和 Debian:

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

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

LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

  • 尽管这没有效果,但通过某种我无法追溯的线索,我找到了适合我的解决方案(https://askubuntu.com/a/227513/126830): `sudo locale-gen "en_US.UTF-8 ”`。因此,在另行通知之前,感谢您发布此内容:) (2认同)

小智 13

Debian GNU/Linux 11(靶心)

我在 GCP 中创建全新的虚拟机实例后遇到了此问题。

基本上,我刚刚运行了以下命令

$ sudo apt-get update
$ sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

我在这里遇到了错误

错误图像

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.
Run Code Online (Sandbox Code Playgroud)

这是我修复它的方法。

  • 安装locales第一个。
$ sudo apt-get install locales
Run Code Online (Sandbox Code Playgroud)
  • 打开语言环境文件(使用您喜欢的编辑器)。
$ sudo nano /etc/default/locale
Run Code Online (Sandbox Code Playgroud)
  • 添加以下内容并保存。
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
  • 运行以下命令。
$ sudo localedef -i en_US -f UTF-8 en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
  • 重新启动您的终端。

  • 运行命令进行测试并通过 关闭它ctrl + d

$ perl
Run Code Online (Sandbox Code Playgroud)

注意:我创建了一个实例来测试我的解决方案以确保。如果它不适合您,请告诉我。

终端历史

我希望它对你有帮助。


小智 12

如果您使用Mac OS X v10.10(Yosemite)或更高版本连接服务器Linux,则可以尝试这些步骤.

  1. 保留文件/ etc/ssh/sshd-config原始文件

  2. 穿上你的〜/ .bash_profile

    export LANG="en_US"
    export LC_ALL=$LANG.UTF-8
    
    Run Code Online (Sandbox Code Playgroud)
  3. dpkg-reconfigure locales
    
    Run Code Online (Sandbox Code Playgroud)

    并选择"en_US.UTF-8"


gla*_*ain 10

您需要在适当的位置配置语言环境/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
Run Code Online (Sandbox Code Playgroud)

  • 这些步骤对我有用(Ubuntu服务器14.04).重点是注销并再次登录. (4认同)

Tho*_*sen 9

sudo nano /etc/locale.gen
Run Code Online (Sandbox Code Playgroud)

取消注释要使用的语言环境(例如en_US.UTF-8 UTF-8):

然后运行:

sudo /usr/sbin/locale-gen
Run Code Online (Sandbox Code Playgroud)

资料来源:http://people.debian.org/~schultmc/locales.html


bog*_*viv 9

perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory
Run Code Online (Sandbox Code Playgroud)

解:

试试这个(uk_UA.UTF-8是我当前的语言环境.编写你的语言环境,例如en_US.UTF-8!)

sudo locale-gen uk_UA.UTF-8
Run Code Online (Sandbox Code Playgroud)

还有这个.

sudo dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)


小智 8

对于 Debian 用户,在修改我的语言环境以更改机器语言后,我遇到了这个问题。这就是我所做的:

  1. 修改.bashrc:

    export LANG=fr_FR.UTF-8
    export LC_ALL=fr_FR.UTF-8
    
    Run Code Online (Sandbox Code Playgroud)
  2. 取消fr_FR.UTF-8文件中的注释行etc/locale.gen->sudo locale-gen生成丢失的包

  3. sudo update-locale

  4. sudo dpkg-reconfigure locales 将我的语言环境配置为 fr_FR.UTF-8

  5. etc/default/locale文件中添加额外的行:

    LANGUAGE=en_US.UTF-8
    LC_ALL=en_US.UTF-8
    LANG=en_US.UTF-8
    LC_TYPE=en_US.UTF-8
    
    Run Code Online (Sandbox Code Playgroud)
  6. 重新启动我的电脑,一切正常


Lan*_*ite 7

对我来说,我修复了这个错误编辑.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
Run Code Online (Sandbox Code Playgroud)

亲切的,


lan*_*oxx 7

如果在通过连接ssh到远程主机时出现此问题,则远程系统可能缺少某些区域设置。我不会重复如何安装和配置区域设置,因为其他答案已经很好地解释了这一点。

正如其他答案所指出的,ssh 应该将本地计算机的区域设置传递到远程主机。例如,如果您设置了澳大利亚语言环境(例如en_AU.UFT-8),并且您正在连接到仅附带的新设置的 Ubuntu 服务器,en_US.UTF-8那么您将收到此警告。

要解决这个问题,您有多种选择:

  1. 在远程主机上安装所需的区域设置,使其与客户端上配置的区域设置相匹配。

  2. 更改 SSH 配置以传递客户端的环境变量。我不会推荐这个。

  3. 通过从文件.bashrc和其他文件中导出区域设置来覆盖远程计算机上的区域设置。


Par*_*sha 6

将缺少的语言环境添加到文件.bash_profile

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

然后获取.bash_profile文件:

source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)


Nuv*_*nda 6

添加正确的语言环境~/.bashrc,~/.bash_profile,/etc/environment和类似就能解决问题,但它是不推荐,因为它覆盖了从设置/etc/default/locale,这是最好混乱,并可能导致持续在最坏情况下被应用不是语言环境.

相反,应该/etc/default/locale直接编辑,这可能看起来像这样:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US
Run Code Online (Sandbox Code Playgroud)

更改将在您下次登录时生效.您可以通过以下方式获取现有shell中的新语言环境/etc/default/locale:

$ . /etc/default/locale
Run Code Online (Sandbox Code Playgroud)

  • 这一步后需要重启系统 (2认同)

Bla*_*res 5

对于从MacOS High Sierra上的iTerm2.app连接到DigitalOcean或其他云托管提供商的任何人,并在某些命令上收到此错误:

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").
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题:

在此输入图像描述

我知道这个线程很老但也许有人会觉得这很有用.我知道这有多烦人.


eri*_*rik 5

问题根源

\n

我经历过这种情况,通过从一台机器登录到另一台机器ssh。远程计算机没有\xe2\x80\x99t 有我在本地计算机上的区域设置文件。您可以禁用将区域设置从本地计算机转发到远程计算机(在文件中/etc/ssh/sshd_config删除行AcceptEnv LANG LC_CTYPE \xe2\x80\xa6)或安装区域设置(在这种情况下无需更改)。

\n

安装中

\n

我在FedoraRed Hat LinuxCentOS上使用过

\n
sudo dnf install langpacks-de\n
Run Code Online (Sandbox Code Playgroud)\n

适用于德语 (de) 语言包。我退出,再登录,结果成功了。

\n

搜索其他语言包

\n
dnf search langpacks-\n
Run Code Online (Sandbox Code Playgroud)\n

更改/激活

\n

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

\n
localectl list-locales\n
Run Code Online (Sandbox Code Playgroud)\n

并设置一个新的

\n
sudo localectl set-locale de_DE.utf8\n
Run Code Online (Sandbox Code Playgroud)\n


小智 5

每当我在最新的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:~$
Run Code Online (Sandbox Code Playgroud)

例如,

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)
Run Code Online (Sandbox Code Playgroud)

查看给出的警告消息。

perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
Run Code Online (Sandbox Code Playgroud)

另外,请注意LC_ALL = (unset)

解决方案很简单。您所要做的就是设置它。

export LC_ALL=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

例如,

kali@kali:~$ export LC_ALL=en_US.UTF-8
kali@kali:~$
Run Code Online (Sandbox Code Playgroud)

并且问题解决了

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

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