8

从 Sublime Text 2 运行我的 python3 脚本时,出现以下错误:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

此外,从终端运行相同的脚本时,不会出现问题。

Sublime 的构建系统设置如下:

{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf8",
"path": "/Library/Frameworks/Python.framework/Versions/3.3/bin/"
}

提前致谢!

4

2 回答 2

28

经过一番调查研究,我弄清楚了问题所在:

子进程中缺少 LANG env 变量,由 Sublime Text 2 运行。我通过在构建设置中添加 LANG 变量来修复它,如下所示:

{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"env": {"LANG": "en_US.UTF-8"}
}
于 2013-03-02T12:57:54.937 回答
1

马丁的解决方案效果很好!在 Windows/Python3.5 环境中,只需设置以下内容而不是“LANG”:

"env": {"PYTHONIOENCODING": "utf8"}
于 2016-11-10T22:31:32.353 回答