CentOS 6 和区域设置错误

Cem*_*Cem 18 localization centos centos6

我刚刚安装了 CentOS 6,每当我通过 SSH 远程登录系统时,都会出现以下错误:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8)
Run Code Online (Sandbox Code Playgroud)

当我在命令行上输入“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
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=
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?我该如何解决这个问题?

小智 18

根据此屏幕截图,通过在“终端设置”>“高级”中禁用“启动时设置区域设置环境变量”来解决此问题。

在此处输入图片说明

注意:如果您使用 iTerm2,您可以在 Preferences > Profiles > Terminal 中禁用“Set locale variables automatically”选项


gpu*_*upo 12

简单的方法:

添加

 LC_CTYPE="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)

/etc/sysconfig/i18n


mdp*_*dpc 10

在您 ssh 的服务器上,您是否通过环境变量设置了语言环境?在查看我的 CentOS 6 安装时,我能找到的唯一受支持的语言环境被标识为en_US.utf8(使用locale -a命令发现)。这可能是问题吗?

在我的测试中,当我将LC_ALL环境变量设置为en_US.UTF-8ssh 到服务器时,我的语言环境命令的输出POSIX在我的情况下设置为。这与我LC_ALL在 ssh'ing 之前没有设置(即取消设置)变量时相同。

当我将LC_ALL变量设置为en_US.utf8or 时en_US.utf-8,通过 ssh 连接到我的 CentOS 6 框时,语言环境的输出与源框上设置的相同。

请注意,我也没有为 UTF 使用大写字母。

  • 顺便说一下,我注意到这是在我的 Mac OS X Lion ssh 设置中发生的。我编辑了 /etc/ssh_config 文件并注释了 SendEnv LANG LC_*。它解决了我的问题。 (11认同)