问题描述
我有这样的确切问题,但没有解决方案。我尝试过,但没用
$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=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=
$ locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
C
C.UTF-8
en_US.utf8
POSIX
这是因为 en_US.UTF-8 和 en_US.utf8 不匹配吗?
怎么修?
最佳思路
当您通过 ssh 从 Mac 登录到 Linux 机器并且终端自动设置环境变量时,也会发生同样的问题(LC_CTYPE=UTF-8,这是错误的)。有一个复选框。取消选中它,就可以开始了。
在 iTerm 中,它位于配置文件 ->终端选项卡。
在终端中,它位于终端 ->首选项->个人资料 ->高级选项卡。
次佳思路
打开终端并触发以下命令:
export LC_ALL="en_US.UTF-8"
第三种思路
生成缺少的区域设置并选择您所需的默认值:
sudo dpkg-reconfigure locales
第四种思路
我遇到了类似的问题,并在我的 /etc/default/locale
文件中添加了以下行:
LC_CTYPE="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LANG="en_US.UTF-8"
我从这篇文章中得到了这个:How do I fix my locale issue?
第五种思路
这个命令救了我的命
echo "LC_ALL=en_US.UTF-8" | sudo tee -a /etc/environment
echo "en_US.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
echo "LANG=en_US.UTF-8" | sudo tee -a /etc/locale.conf
sudo locale-gen en_US.UTF-8
第六种思路
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales
第七种思路
locale
命令的输出表明您的环境中存在以下不正确的行:
LC_CTYPE="UTF-8"
(“UTF-8” 不是有效的区域设置名称。)
它通常来自 /etc/default/locale
。请删除该行(如果有),然后重新登录。
如果它不是来自那里,它可能来自您的 shell 配置,或者如果您通过 SSH 远程登录,则来自客户端计算机的配置。
第八种思路
/etc/default/locale 文件可以有额外的(但不必要的)行:\n示例文件可能如下所示:
# File generated by update-locale
LANG=en_US.UTF-8
LANGUAGE="en_IN:en
要整理并成功生成和重新配置区域设置,请删除或注释掉此文件中的所有行,除了:
LANG=en_US.UTF-8
该文件最终应如下所示:
# File generated by update-locale
LANG=en_US.UTF-8
# LANGUAGE="en_IN:en
之后,运行 dpkg-reconfigure locales
,在提示选择区域设置时选择 en_US.UTF-8 ,然后就可以开始了。该过程完成后,您将收到一条 Generation complete.
消息。