今天編譯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 重新編譯,可正常輸出中文。