Unicode 特殊字符不适用于 Mac OSX 10.11.5 bash 终端

Unicode special characters not working on Mac OSX 10.11.5 bash terminal

所以在我的 Mac 上使用 bash 时,我已经习惯了很长时间来输入特殊字符,例如重音元音和西班牙语中很常见的 ñ。具体来说,我曾经使用这些字符通过 bash 用西班牙语编写提交消息,没问题。

将我的 Mac 升级到 OS X El Capitan 10.11.5 后,我注意到只要我输入其中一个字符,提示就会改变并且不显示输入的字符,例如,按 ñ 将我的提示从

更改为
host:directory username  $

(arg: 1)

而不是简单地在屏幕上显示 ñ。除了 arg 旁边显示的索引发生变化外,其他重音字符和其他特殊字符也会发生类似的情况。

在使用 OSX Yosemite 10.10.5 处理我的 MacBook Air 时,这些字符在命令行上显示没有问题,就像我习惯的那样。

两台计算机在“终端”>“首选项”中设置了相同的编码集,因此这应该不是问题。还有,locale在两台电脑上的输出是一样的,即

LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

我认为终端将是此次更新中唯一受影响的区域。当运行在我的 OSX 10.10.5 Mac 上 运行 完美地 python 脚本将退出并出现编码错误时,它确实变成了一个问题在我的 10.11.5 Mac 上,在相同版本的 Python (3.4.3) 下。

我终于搞定了。我一点一点地比较了两台 mac 上的终端配置文件设置。它们唯一不同的选项实际上是在 Preferences>Profiles>Advanced 下。 'International' 部分有一个复选框,用于在启动时设置语言环境变量。这没有在我的非工作 Mac 上检查,而在我的工作 MacBook Air 上检查过。选中复选框并重新启动终端为我完成了。我不太确定启动时使用此选项还设置了什么,甚至在我找到修复程序之前就看到两台计算机上的语言环境变量设置为相同的值。

现在一切正常,我可以再次在我的 shell 上输入特殊字符,但最重要的是,我的 python 脚本现在 运行 完美无缺,没有任何编码问题。