我在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 中实现相同的输出?
请您参考如下方法:
感谢 this article,我找到了解决方案.
如果您遇到同样的问题,您所要做的就是创建一个标准的 XML 属性列表 ~/.MacOSX/environment.plist(区分大小写,区分扩展名),键为 PYTHONIOENCODING 和字符串值 utf-8。测试前不要忘记注销和登录。
有关更多详细信息,您可能会发现这些文章很有用:
http://docs.python.org/using/cmdline.html#envvar-PYTHONIOENCODING
http://developer.apple.com/library/mac/#qa/qa1067/_index.html
环境.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PYTHONIOENCODING</key>
<string>utf-8</string>
</dict>
</plist>
