Sublime Text3 編譯後無法正常顯示中文的問題修復
阿新 • • 發佈:2019-01-08
一、亂碼現象
利用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”,並且能成功列印中文