"setlocale: LC_CTYPE: cannot change locale (UTF-8)" 使用 MacOS/iTerm2/ZSH 连接到 AWS EC2 服务器时

"setlocale: LC_CTYPE: cannot change locale (UTF-8)" when connection to AWS EC2 servers with MacOS/iTerm2/ZSH

有许多相关问题,但 none 个答案解决了这个具体案例:

我在 MacOS 上,使用 iTerm2 和 ZSH。

任何带有 Amazon 图像(可能还有其他图像)的 AWS EC2 实例在使用 SSH 连接到它们时都会向我显示该行:

setlocale: LC_CTYPE: cannot change locale (UTF-8)

这个问题的常见答案似乎是在服务器上进行修复。但这不是我要找的,我想在客户端上进行修复(因为我们经常创建和销毁 EC2 实例)。

我已经尝试将其添加到我的 .zshrc 文件中:

export LC_CTYPE=UTF-8

我想如果它已经设置为该语言环境,它就不会抱怨。但这没有用。

在iTerm2中,有一个选项:

我试图禁用它,但也没有改变。

如何解决这个问题?

“UTF-8”看起来像是字符集的名称,而不是语言环境的名称。这可能是 macOS 上的有效语言环境,但可能不在 EC2 服务器上。在 Linux 系统上,您可以使用 locale -a 列出可用的语言环境。尝试像 en_US.UTF-8C.UTF-8 这样的值。如果可用,后者可能更可取。

.zprofile 设置它可能比 .zshrc 更好,并且可能只有在现有值为“UTF-8”时才有条件:

    [[ $LC_CTYPE = UTF-8 ]] && LC_CTYPE=C.UTF-8