python在不同系統下的中文編碼問題

2021-08-11 09:08:03 字數 1576 閱讀 2271

上週在做qq郵箱的模擬登入,在呼叫郵件查詢介面的時候,遇到了查詢字串下中文編碼的問題,本質是python2環境下中文編碼的問題。

windows

windows下通過cmd開啟python終端,預設的編碼方式是gbk。

c:\windows\system32>python

python 2.7

.13 |anaconda 4.4

.0 (64-bit)| (default, may 11

2017, 13:17:26) [msc v.

1500

64 bit (amd64)] on win32

or"license"

for more information.

anaconda is brought to you by continuum analytics.

please check out: and

>>>

'招商'

'\xd5\xd0\xc9\xcc'

>>> type('招商')

'str'>

>>>

'招商'.decode('gbk')

u'\u62db\u5546'

>>>

u'招商'

>u'\u62db\u5546'

>>>> '招商'.decode('gbk').encode('gbk')

'\xd5\xd0\xc9\xcc'

如果直接開啟anaconda下的ipython或者python,預設的編碼方式是utf-8

in [1]: '招商'

out[1]: '\xe6\x8b\x9b\xe5\x95\x86'

in [2]: '招商'.decode('utf-8')

out[2]: u'\u62db\u5546'

in [3]: u'招商'

out[3]: u'\u62db\u5546'

因此,如果是使用anaconda,那麼在py檔案中的中文會被utf8編碼儲存,除非顯性寫成 u』中文』,然後進行編碼。

linux

linux 下的python預設編碼方式為utf-8

[root@izm5eapte3nlp363mzinz8z ~]# python

python 2.7

.5 (default, aug 4

2017, 00:39:18)

[gcc 4.8

.520150623 (red hat 4.8

.5-16)] on linux2

or"license"

for more information.

>>>

'招商'

'\xe6\x8b\x9b\xe5\x95\x86'

>>>

'招商'.decode('utf-8')

u'\u62db\u5546'

>>>

'招商'.decode('utf-8').encode('gbk')

'\xd5\xd0\xc9\xcc'

使用的時候注意分辨。

gradle在不同系統下適配

有時我們需要自己定製一些gradle的執行task,可能會用到一些系統中的其它環境,這時需要我們針對不同的os做一些適配。方法一 獲取os的name判斷其中是否包含windows欄位 def iswindows 方法二 通過operatingsystem類中的方法來判斷當前環境 def iswind...

sqlite不同系統下的安裝

sqlite 的乙個重要的特性是零配置的,這意味著不需要複雜的安裝或管理。本章將講解 windows linux 和 mac os x 上的安裝設定。建立資料夾 c sqlite,並在此資料夾下解壓上面兩個壓縮檔案,將得到 sqlite3.def sqlite3.dll 和 sqlite3.exe ...

r n, n, r的歷史及在不同系統下的區別

在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。於是,研製人員想了個辦法解決這個問題,就是在每...