代碼如下:
>>> import urllib
>>> data = '麗江'
>>> print data
麗江
>>> data
'/xe4/xb8/xbd/xe6/xb1/x9f'
>>> urllib.quote(data)
'%E4%B8%BD%E6%B1%9F'
那我們想轉回去呢?
代碼如下:
>>> urllib.unquote('%E4%B8%BD%E6%B1%9F')
'/xe4/xb8/xbd/xe6/xb1/x9f'
>>> print urllib.unquote('%E4%B8%BD%E6%B1%9F')
麗江
不同的編碼格式對urllib的結果頁是有影響的,百度的是gbk,其他的一般網站比如google就是utf8的。所以可以用下列語句實現。
代碼如下:
>>> import sys,urllib
>>> s = '麗江'
>>> urllib.quote(s.decode(sys.stdin.encoding).encode('gbk'))
'%C0%F6%BD%AD'
>>> urllib.quote(s.decode(sys.stdin.encoding).encode('utf8'))
'%E4%B8%BD%E6%B1%9F'
>>>
這里的 sys.stdin.encoding 是讀取當前環境的編碼,這樣寫的話可移植性高,winnt和xunix都可以用。當然你如果看不慣,也可以替換為自己的環境編碼如utf8等。
新聞熱點
疑難解答