當(dāng)url地址含有中文,或者參數(shù)有中文的時候,這個算是很正常了,但是把這樣的url作為參數(shù)傳遞的時候(最常見的callback),需要把一些中文甚至'/'做一下編碼轉(zhuǎn)換。
轉(zhuǎn)載自原文地址
一、urlencode
urllib庫里面有個urlencode函數(shù),可以把key-value這樣的鍵值對轉(zhuǎn)換成我們想要的格式,返回的是a=1&b=2這樣的字符串,比如:
>>> from urllib import urlencode
>>> data = {
... 'a': 'test',
... 'name': '魔獸'
... }
>>> print urlencode(data)
a=test&name=%C4%A7%CA%DE
如果只想對一個字符串進(jìn)行urlencode轉(zhuǎn)換,怎么辦?urllib提供另外一個函數(shù):quote()
>>> from urllib import quote
>>> quote('魔獸')
'%C4%A7%CA%DE'
二、urldecode
當(dāng)urlencode之后的字符串傳遞過來之后,接受完畢就要解碼了。urllib提供了unquote()這個函數(shù),可沒有urldecode()!
>>> from urllib import unquote
>>> unquote('%C4%A7%CA%DE')
'\xc4\xa7\xca\xde'
>>> print unquote('%C4%A7%CA%DE')
魔獸