Skip to main content
 首页 » 编程设计

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

2025年05月04日11qq78292959

我在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>