Sublime和Python中文編碼的一些問題

2022-08-21 18:51:16 字數 1306 閱讀 6499

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、將以下**加到程式的頭部

import

sysdefault_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 可以說是必須安裝的外掛程式,因為其方便的提供了安裝 公升級 刪...