在Windows的Sublime Text控制台中打印utf8字符串
问题内容:
python myscript.py
从Windows控制台cmd.exe
(即Sublime Text 外部 )运行此代码时,它可以工作:
# coding: utf8
import json
d = json.loads("""{"mykey": {"readme": "Café"}}""")
print d['mykey']['readme']
咖啡店
在Sublime Text 2中使用运行它时CTRL+B
,它将失败:
- 这样(默认情况下):
print d [‘mykey’] [‘readme’]
UnicodeEncodeError:’ascii’编解码器无法在位置3编码字符u’\ xe9’:序号不在范围内(128)
[在0.1秒内完成,退出代码为1]
- 或类似,在使用Sublime Text 3在Python 3中打印UTF-8的答案得到解决方案后(即在构建系统中添加):
"env": {"PYTHONIOENCODING": "utf8"},
[解码错误-输出不是utf-8]
[解码错误-输出不是utf-8]
[在0.1秒内完成]
- 添加
"encoding": "utf-8"
在Python崇高-build文件并没有帮助
print
如果Sublime Text 2(适用于Windows)控制台包含一些UTF8字符,该如何正确操作?
注意:这 不是 使用Sublime Text 3在Python
3中打印UTF-8的重复,我之前已经链接到此问题。
这是Python.sublime-build
文件:
{ "cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python" }
(我尝试了有和没有"env": ...
,有和没有"encoding": ...
)
问题答案:
我找到了一种可能的解决方法:encoding
在Python.sublime-build
文件中添加参数:
{
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "cp1252",
...
注意:"encoding": "latin1"
似乎也可以使用,但是-我不知道为什么-"encoding": "utf8"
不能使用,即使.py文件是UTF8,即使Python 3使用UTF8等也是如此。
编辑:现在可以使用:
{
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf8",
"env": {"PYTHONIOENCODING": "utf-8", "LANG": "en_US.UTF-8"},
}
链接的主题: