上週在做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秒裡面,又有新的字元傳過來,那麼這個字元將丟失。於是,研製人員想了個辦法解決這個問題,就是在每...