使用UTF-8时,Xcode的输出与IDLE不同(Python 3)

时间:2011-12-26 14:53:55

标签: python xcode utf-8

我在Mac OS 10.7下使用Xcode 4.2和IDLE来编译Python 3代码,如下所示:

#coding=utf-8
print("ľťď")

尽管使用了相同的解释器,即python 3.2.2,而IDLE返回了预期的字符串ľťď(事实上,即使没有第一行也能正常工作 - 如果我理解正确的话,这个版本的Python使用utf-8作为默认编码),Xcode返回错误:

Traceback (most recent call last):
  File "/Users/.../main.py", line 2, in <module>
    print("\u013e\u0165\u010f")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

如何在Xcode中实现相同的输出?

2 个答案:

答案 0 :(得分:0)

感谢this article,我找到了解决方案。

如果您遇到同样的问题,您所要做的就是创建一个标准的XML属性列表~/.MacOSX/environment.plist(区分大小写,扩展名敏感),密钥为PYTHONIOENCODING,字符串值为{{1 }}。在测试之前不要忘记注销并登录。

有关详细信息,您可能会发现这些文章很有用:

http://docs.python.org/using/cmdline.html#envvar-PYTHONIOENCODING

http://developer.apple.com/library/mac/#qa/qa1067/_index.html

<强> environment.plist

utf-8

答案 1 :(得分:0)

有些人反对使用~/.MacOSX/environment.plist(例如http://tug.org/mailman/htdig/macostex-archives/2011-September/047624.html

另一方面,我在10.6中使用ActiveState版本的python和tcl,并打开IDLE作为应用程序给出“us-ascii”但是从终端打开它($ idle3)给出“utf-8”,这可能会让您避免使用environment.plist