sublime text 2在python3.3下输出中文字符的问题

在python2.7下,我在一个文件中输入了点中文字符,然后保存为txt格式文件,之后读取输入至控制台没有报错。但是切换至python3.3下,读取同样一个文件,就报错,提示:
/Users/nintenace/Desktop/learn_python
Traceback (most recent call last):
File "/Users/nintenace/Desktop/learn_python/test.py", line 7, in
print(str)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
[Finished in 0.0s with exit code 1]

代码如下:
with open('ttt.txt','r',encoding='utf-8') as ttt: str = ttt.readline() print(str)

很奇怪为什么会这样,我是在mac下操作的,望高手解答!

阅读 11.8k
1 个回答

http://stackoverflow.com/a/15174760

Preferences -> Browse Packages -> Python -> Python.sublime-build

加上一句 env,比如这样:

{
    "cmd": ["/usr/local/bin/python3.3", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "env": {"LANG": "en_US.UTF-8"}
}

注意 selector 最后的逗号!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题