您当前的位置:首页 > 计算机 > 编程开发 > Python

python中的urlencode与urldecode

时间:08-23来源:作者:点击数:
城东书院 www.cdsy.xyz

当url地址含有中文,或者参数有中文的时候,这个算是很正常了,但是把这样的url作为参数传递的时候(最常见的callback),需要把一些中文甚至’/'做一下编码转换。

所以对于一些中文或者字符,url不识别的,则需要进行转换,转换结果如下:

一、urlencode

urllib库里面有个urlencode函数,可以把key-value这样的键值对转换成我们想要的格式,返回的是a=1&b=2这样的字符串,比如:

import urllib.parse
values={}
values['username']='02蔡彩虹'
values['password']='ddddd?'
url="http://www.baidu.com"
data=urllib.parse.urlencode(values)
print(data)

结果如下:

username=02%E8%94%A1%E5%BD%A9%E8%99%B9&password=ddddd%3F

如果只想对一个字符串进行urlencode转换,怎么办?urllib提供另外一个函数:quote()

import urllib.parse
s='长春'
s=urllib.parse.quote(s)
print(s)

输出结果为:

%E9%95%BF%E6%98%A5
二、urldecode

当urlencode之后的字符串传递过来之后,接受完毕就要解码了——urldecode。urllib提供了unquote()这个函数,可没有urldecode()!

s='%E5%B9%BF%E5%B7%9E'
s=urllib.parse.unquote(s)
print(s)

输出结果为:

广州

>>> import urllib.parse
>>> a='吉利博瑞'
>>> b='%bc%aa%c0%fb%b2%a9%c8%f0'
>>> urllib.parse.unquote(b,'gb2312')
'吉利博瑞'
>>> urllib.parse.quote(a,'gb2312')
'%E5%90%89%E5%88%A9%E5%8D%9A%E7%91%9E'
>>> c=a.encode('gb2312')
>>> c
b'\xbc\xaa\xc0\xfb\xb2\xa9\xc8\xf0'
>>> urllib.parse.quote(c)
'%BC%AA%C0%FB%B2%A9%C8%F0'
>>>
城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐