跳至内容
Python 俱乐部
用户工具
登录
站点工具
搜索
工具
显示页面
修订记录
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
python-network-application:urlencode
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== python urlencode 编码 ====== ===== urlencode 调用方法 ===== urlencode的参数必须是Dictionary <code python> d= {'par1':'a','par2':'b',} print urllib.urlencode(m) #par2=b&par1=a </code> ===== urlencode 编码 ===== 函数urlencode不会改变传入参数的原始编码,也就是说需要在调用之前将post或get参数的编码调整好。Python编码转换可以参考 http://www.pythonclub.org/python-basic/codec 。 问题:现在模拟请求Google和baidu,由于baidu使用的是gb2312编码,google使用的是utf8编码,两个站点提交到URL中的中文参数的urlencode值是不一样,下面以"帝国"为例: python文件的 # coding: UTF-8 执行urllib.urlencode("帝国")得到的结果是:%E5%B8%9D%E5%9B%BD, 此结果说明默认使用 urlencode得到的结果是utf8编码的“帝国”。 现在想得到gb2312编码的“帝国”怎么办呢? <code python> st = u'帝国' st = st.encode('gb2312') m = {'par':st,} s = urllib.urlencode(m) print s #结果为par=%B5%DB%B9%FA </code> django中urlencode类似,方法如下: <code python> from django.utils.http import urlquote a = urlquote('帝国') print a </code> ==== 得到汉字的GBK编码 ==== 其实可以用urllib的quote函数对URL中的中文进行转换,将中文转换成GBK的编码,得到的编码是符合URI标准的URL。 <code> >>> import urllib >>> a = "帝国" >>> a '\xb5\xdb\xb9\xfa' >>> urllib.quote(a) '%B5%DB%B9%FA' >>> </code>
python-network-application/urlencode.txt
· 最后更改: 2011/01/03 12:39 (外部编辑)
页面工具
显示页面
修订记录
反向链接
回到顶部