Sublime Text 2 与 Python3 构建的编码错误
当我在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"}
}