在 macos 上,LC_CTYPE 设置为错误值 - 在哪里更改 iTerm2?

在 macos 上,LC_CTYPE 设置为错误值 - 在哪里更改 iTerm2?

在我的系统上,语言环境变量LC_CTYPE被设置为非法值,这会导致 Linux 系统出现问题。它被设置为:

$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

LC_CTYPE=UTF-8在 Linux 上不是合法值;例如:

$ ssh front1
Linux front1 3.16.0-7-amd64 #1 SMP Debian 3.16.59-1 (2018-10-03) x86_64

The programs included with the Debian GNU/Linux system are free software;
alex@front1 ~> perl
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"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US").

但是LC_CTYPE首先在哪里设置呢?它不在/etc或中的任何文件中$HOME(我做了一个sudo fgrep -ri LC_CTYPE /etc $HOME)。

我正在使用 iTerm2 作为我的终端应用程序。

答案1

之后一点点 ddg,我来这里是为了这篇博文在 Mac OSX 终端应用程序上正确设置语言环境Remi Bergsma 的博客。原来 iTerm2 也有这样的设置。禁用它,iTerm2 就不会弄乱语言环境了。

iTerm2 首选项 -> 区域设置

现在设置如下:

$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

这也不是很好,因为我将系统设置为瑞士德语。在这方面,普通终端应用程序更好一些:

$ locale
LANG="de_CH.UTF-8"
LC_COLLATE="de_CH.UTF-8"
LC_CTYPE="de_CH.UTF-8"
LC_MESSAGES="de_CH.UTF-8"
LC_MONETARY="de_CH.UTF-8"
LC_NUMERIC="de_CH.UTF-8"
LC_TIME="de_CH.UTF-8"
LC_ALL=

相关内容