首頁 >後端開發 >Python教學 >python實作中文轉換url編碼

python實作中文轉換url編碼

高洛峰
高洛峰原創
2017-03-03 13:07:451670瀏覽

本文實例講述了python實作中文轉換url編碼的方法。分享給大家供大家參考,具體如下:

今天要處理百度貼吧的東西。想要做一個關鍵字的list,每次需要時,直接加入 到list裡面就可以了。但是添加到list裡面是中文的情況(例如‘麗江'),url的地址編碼卻是'%E4%B8%BD%E6%B1%9F',因此需 要做一個轉換。這裡我們就用到了模組urllib。

>>> 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')
丽江

細心的同學會發現貼吧url中出現的是%C0%F6%BD%AD,而非'%E4%B8%BD%E6 %B1%9F',其實是程式設計問題。百度的是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'
>>>

更多python實作中文轉換url編碼相關文章請關注PHP中文網!

#
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn