今天编译Python时, 输出窗口信息出现:
[Decode error - output not utf-8]
查资料发现是因为sublime读取解释器返回文本的编码不一样,于是通过下面这段代码验证:
import sys
print(sys.stdin.encoding)
print(sys.stdout.encoding)
用ctrl+B进行编译,返回的是“cp936”,用repl解释器交互返回的是utf-8,说明是由于编码不一致导致的
cp936
cp936
[Finished in 0.2s]
解决:
由于我自己新建了一个新的python3.7的编译器,所以要修改的是Python3.7.sublime-build文件在里面添加一行 (如果没有新建python编译器,则修改Python.sublime-build文件),文件路径在“Sublime Text3\Packages\”
"encoding":"cp936",
修改后为
{
"shell_cmd": "python -u \"$file\"",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding":"cp936", # 要加的内容
"env": {"PYTHONIOENCODING": "utf-8"},
"env": {"PYTHONPATH": "C:/Program Files/Python37"},
"variants":
[
{
"name": "Syntax Check",
"shell_cmd": "python -m py_compile \"${file}\"",
}
]
}
保存,ctrl+B 重新编译,可正常输出中文。