我在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中实现相同的输出?
答案 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
。