Sublime Text 2 与 Python3 构建的编码错误

8 投票
2 回答
4398 浏览
提问于 2025-04-17 17:38

当我在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/"
}

提前谢谢你们!

2 个回答

1

马丁的解决方案效果很好!在Windows和Python3.5的环境下,只需要把“LANG”换成下面这个:

"env": {"PYTHONIOENCODING": "utf8"}
28

经过一些调查和研究,我找到了问题所在:

在Sublime Text 2中运行的子进程缺少LANG环境变量。我通过在我的构建设置中添加LANG变量来解决这个问题,具体如下:

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

撰写回答