>>> import urllib
>>> p="/wEPDwUJNjc5"
>>> e=urllib.urlencode({'name':p})
>>> print e
name=%2FwEPDwUJNjc5
经过urlencode()后,为什么开始的‘/’字符变成了%2F,我的本意是不想有这个变化怎么弄啊?
3 个解决方案
#1
urlencode后的数据是给远程的服务器看的,你为什么要指定它变什么样呢?
如果你要做其他用处,比如只是要把key和value用“=”连起来,就自己写一个函数。
如果你要做其他用处,比如只是要把key和value用“=”连起来,就自己写一个函数。
#2
>>> import urllib
>>> p="/wEPDwUJNjc5"
>>> e=urllib.urlencode({'name':p})
>>> print e
name=%2FwEPDwUJNjc5
name = name.replace('%2F' , '/')
>>> p="/wEPDwUJNjc5"
>>> e=urllib.urlencode({'name':p})
>>> print e
name=%2FwEPDwUJNjc5
name = name.replace('%2F' , '/')
#3
你要明白你是要干嘛,urlencode就是个wrap函数,把key=value编码为包含百分号的字符串给服务器
需要'/'的时候,你去要另外一个函数,类似的,unquote
看测试
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import urllib
>>> p = '/wEPDwUJNjc5'
>>> e = urllib.urlencode({'name':p})
>>> print e
name=%2FwEPDwUJNjc5
>>> e
'name=%2FwEPDwUJNjc5'
>>> print urllib.unquote(e)
name=/wEPDwUJNjc5
>>>
#1
urlencode后的数据是给远程的服务器看的,你为什么要指定它变什么样呢?
如果你要做其他用处,比如只是要把key和value用“=”连起来,就自己写一个函数。
如果你要做其他用处,比如只是要把key和value用“=”连起来,就自己写一个函数。
#2
>>> import urllib
>>> p="/wEPDwUJNjc5"
>>> e=urllib.urlencode({'name':p})
>>> print e
name=%2FwEPDwUJNjc5
name = name.replace('%2F' , '/')
>>> p="/wEPDwUJNjc5"
>>> e=urllib.urlencode({'name':p})
>>> print e
name=%2FwEPDwUJNjc5
name = name.replace('%2F' , '/')
#3
你要明白你是要干嘛,urlencode就是个wrap函数,把key=value编码为包含百分号的字符串给服务器
需要'/'的时候,你去要另外一个函数,类似的,unquote
看测试
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import urllib
>>> p = '/wEPDwUJNjc5'
>>> e = urllib.urlencode({'name':p})
>>> print e
name=%2FwEPDwUJNjc5
>>> e
'name=%2FwEPDwUJNjc5'
>>> print urllib.unquote(e)
name=/wEPDwUJNjc5
>>>