python url函数openurl函数会url编码吗

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)2被浏览564分享邀请回答1添加评论分享收藏感谢收起写回答Python中还原JavaScript的escape函数编码后字符串的方法
转载 & & 投稿:junjie
这篇文章主要介绍了Python中解析JavaScript的escape函数编码后字符串的方法,即Python中如何还原JavaScript escape函数编码后的字符串,需要的朋友可以参考下
遇到一个问题需要用Python把JavaScript中escape的中文给还原,但找了大半天,也没有找到答案,只好自己深入研究解决方案。
我们先来看在js中escape一段文字的编码
a = escape('这是一串文字');
%u8FD9%u662F%u4E00%u4E32%u
咋一看,就感觉有点类似json格式,我们来看看标准的json格式编码同样的汉子“这是一串文字”
# encoding=utf-8
import json
a = '这是一串文字'
print json.dumps(a)
代码如下:"\u8fd9\u662f\u4e00\u4e32\u"
经过对比,其实就是js escape编码每个汉子都是“%u”符号加4位字符编码,而json编码每个汉子都是“\u”符号加4位字符编码,这样的话,我们可以利用字符串替换操作还原json格式,然后再使用json模块loads就好
# encoding=utf-8
import json
# js escape 字符串编码
c = '%u8FD9%u662F%u4E00%u4E32%u'
# 还原Json对象
jsonObj =& '"'+"".join([(i and "\\"+i) for i in c.split('%')])+'"'
print json.loads(jsonObj)
特别记得在把“%”替换为“\”符号以后还要再使用双引号把字符串包一下,才能算是一个json对象,然后才能json.loads出来
后来,好不容易在一个站点上看到了更简便的方法。代码如下:
# encoding=utf-8
c = '%u8FD9%u662F%u4E00%u4E32%u'
print "".join([(len(i)&0 and unichr(int(i,16)) or "") for i in c.split('%u')])
它的思路其实都差不多,把“%u”号替换掉,剩下每一个都是4位固定长度的字符编码,最后在unichr反编码回中文字符。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具工具显示源文件修订记录反向链接最近更改媒体管理器网站地图登录&
京东优惠券
python-network-application:urlencode
python urlencode 编码
urlencode 调用方法
urlencode的参数必须是Dictionary
d= {'par1':'a','par2':'b',}
print urllib.urlencode(m)
#par2=b&par1=a
urlencode 编码
函数urlencode不会改变传入参数的原始编码,也就是说需要在调用之前将post或get参数的编码调整好。Python编码转换可以参考
问题:现在模拟请求Google和baidu,由于baidu使用的是gb2312编码,google使用的是utf8编码,两个站点提交到URL中的中文参数的urlencode值是不一样,下面以“帝国”为例:
python文件的
# coding: UTF-8
执行urllib.urlencode(“帝国”)得到的结果是:%E5%B8%9D%E5%9B%BD, 此结果说明默认使用 urlencode得到的结果是utf8编码的“帝国”。
现在想得到gb2312编码的“帝国”怎么办呢?
st = u'帝国'
st = st.encode('gb2312')
m = {'par':st,}
s = urllib.urlencode(m)
#结果为par=%B5%DB%B9%FA
django中urlencode类似,方法如下:
from django.utils.http import urlquote
a = urlquote('帝国')
得到汉字的GBK编码
其实可以用urllib的quote函数对URL中的中文进行转换,将中文转换成GBK的编码,得到的编码是符合URI标准的URL。
&&& import urllib
&&& a = &帝国&
'\xb5\xdb\xb9\xfa'
&&& urllib.quote(a)
'%B5%DB%B9%FA'新手求助: python3,4中 url 编码解码的问题_python吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:167,197贴子:
新手求助: python3,4中 url 编码解码的问题收藏
在 python 2.x 中,可以使用quote
和 unquote 来对url 编码解码
小白想问一下,在python 3 中
应该要用什么函数呢
python_总监级名师全程面授,项目实战案例式教学,企业需求无缝对接,助你无忧就业!python,0基础23周快速实现高薪就业,0元试听两周.名额有限,欲报从速.点击抢座
import urllib.requesturllib.request.quote(...)
感谢感谢 !
因为这个都想学2.7去了呢
小白从Python 3开始学的,但是网上教程都是2.x
感谢大神提示
urllib.request.urlopen(URL).read().decode('gbk')
,中文网站一般用gbk,英文的utf-8就可以了
登录百度帐号推荐应用

我要回帖

更多关于 python 汉字转url编码 的文章

 

随机推荐