【发布时间】:2016-05-27 18:40:46
【问题描述】:
所以很长一段时间以来,在我的 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,但
(arg: 1)看起来你的击键调用了 Bash Readline argument -
在“首选项”>“配置文件”>“高级”选项卡的底部,有一个“国际”部分和一个“文本编码”右侧的下拉框。那是说'Unicode(UTF-8)'吗?我无法在运行 El Capitan 10.11.5 的 MacBook Pro (13") 上重现。我能够在 shell 和 Firefox 中输入“Option-n”然后输入“n”以生成“ñ”而没有问题输入此评论。终端生成的字节 0xC3 0xB1 看起来(至少)是合理的。
-
@JonathanLeffler 实际上,它们都设置为 UTF-8。正如您在我的回答中看到的那样,问题出在“启动时设置语言环境变量”复选框。感谢您为我指明正确的方向。
标签: python unicode terminal special-characters