【问题标题】:Unicode special characters not working on Mac OSX 10.11.5 bash terminalUnicode 特殊字符在 Mac OSX 10.11.5 bash 终端上不起作用
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

  • 我的工作环境也勾选了“启动时设置语言环境变量”项。
猜你喜欢
  • 1970-01-01
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 2013-11-14
  • 2020-10-12
  • 2016-09-20
相关资源
最近更新 更多