2013-03-01 56 views
8

当从崇高文字2运行我python3脚本,以下错误occures:崇高文本2编码与python3错误打造

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

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

的崇高构建系统设置如下:提前

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

谢谢!

回答

28

经过一番调查研究,我想通了,问题是什么:

缺少LANG环境变量在子,跑由崇高的文本2.我只需添加LANG变量在我的体型设置,如固定它所以:

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

太棒了!解决了我的问题。 – jostyposty 2013-10-20 21:05:50

+1

太棒了!同样适用于Sublime Text 3 – chris838 2015-09-30 12:34:04

+1

所以,我刚刚将这个问题作为问题再次提供,只是为了提供答案,但我想我只是在这里发表评论。我试过了,但没有奏效。也许,因为我在Mac上工作。对我来说,诡计不是设置LANG env变量,而是将LC_CTYPE设置为“UTF-8”。我从字面上搜索了3个小时,在我的桌面上留下了牙痕,为什么这可能会有所帮助。 – Ekkstein 2015-10-23 14:45:52

1

Martin的解决方案效果很好!在Windows/Python3.5环境中,而不是“LANG”设置如下:

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