一、亂碼現象
利用sublime自帶編譯快捷方式ctrl+B會出現中文亂碼的情況
print("沒有循環數據!")
print("完成循環!")
二、尋找原因
1、由於之前我已經安裝了插件ConvertToUTF8,排除文本編碼錯誤問題
2、相同的代碼在插件sublimerepl搭建的解釋器交互下(按F5鍵),能成功顯示中文
。。。。。。在查找了很多案例之后發現
Anaconda插件安裝之后會自動生成一個叫“Anaconda Python Builder”的編譯系統,在 工具-編譯系統-中可以看到
然后在這篇博客里面找到原因,原來是因為sublime讀取解釋器返回文本的編碼不一樣,於是通過下面這段代碼驗證:
import sys print(sys.stdout.encoding)
用ctrl+B進行編譯,返回的是“cp936”,用repl解釋器交互返回的是utf-8,說明是由於編碼不一致導致的
之后新建了一個編譯系統:
在Python3.sublime.build中寫入下面代碼
1 { 2 "cmd":["C:\\Users\\jh\\Anaconda3\\python.exe", "-u", "$file"], 3 "path":"C:\\Users\\jh\\Anaconda3\\python.exe", // 注意:路徑根據自己的python安裝路徑而定 4 "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 5 "selector": "source.python", 6 "encoding": "utf-8" , 7 "env": {"PYTHONIOENCODING": "utf8"}//通過這句,使編碼一致,都是utf8 8 }
之后再用ctrl+B進行編譯,返回“utf-8”,並且能成功打印中文