windows下的控制台中,應該是這樣的邏輯:
1、如果是unicode字串的話,首先根據控制台編碼進行轉換
2、之後進行輸出
所以在windows控制台下,假設str = u'中文',
1、直接print str是可以正確輸出的
2、print str.encode('gbk')或者print str.encode('gb2312')是正確輸出的
3、print str.encode('utf-8')是輸出亂碼
在windows系統下的sublime text中,假設str = u『中文',
1、如果直接print str的時候,會提示
'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
這是因為它試圖用系統預設編碼(windows下預設是ascii)去對unicode字串進行encode,碰到中文肯定是失敗的
2、如果print str.encode('utf-8')是可以在sublime text中正確輸出的
3、如果pirnt str.encode('gbk')或者print str.encode('gb2312'),會提示
[decode error - output not utf-8]
可能是因為sublime text只接受utf-8的輸出吧
總結上述流程,sublime text的流程應該是
1、判斷字串是否是unicode
2、如果是的話,就先對其用系統預設編碼來進行encode
3、判斷位元組串是否是utf-8編碼,如果是的話,就輸出
為了解決windows下sublime text這個問題,可以通過以下兩種辦法:
1、將以下**加到程式的頭部
importsysdefault_encoding = '
utf-8
'if sys.getdefaultencoding() !=default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding)
網上有說插入到sublime_plugin.py中,但是試驗了一下,不行
2、在系統環境變數中新增pythonioencoding(大小寫無所謂),值為utf-8
這樣子,當想輸出中文的時候,直接print str,str是unicode字串,這樣子無論是在sublime text還是控制台中都是正確的結果了!
注:python字元編碼問題,chardet,codecs
sublime 配置python 環境
sublime 配置python 環境 python 安裝包 sublime 3 安裝包 2.安裝 python 不說廢話 注意一點 看圖 特別要注意選上pip和add python.exe to path,然後一路點 next 即可完成安裝。安裝完成後 開啟命令提示符視窗,敲入python後,會出...
Sublime搭建Python環境
使用sublime text配置python開發環境 安裝package control preferences install package control 快捷鍵ctrl shift p 輸入install 手動 先安裝 sidebarenhancements 側邊欄 安裝下列外掛程式 sid...
Sublime開發python程式
preferences browers packages python python.sublime build 修改python.sublime build檔案,增加python安裝路徑 sublime package control 可以說是必須安裝的外掛程式,因為其方便的提供了安裝 公升級 刪...