假如我们要对下面的url进行转码,注意观察各种字符的变化
使用quote方法,进行转码
我们看看转码得到的结果:
我们想要得到原先的url,可以使用quote的逆函数unquote
得到反转码以后的url,我们看到这种方法并没有返回中文字符。
百分比编码是一种拥有8位字符编码的编码机制,这些编码在URL的上下文中具有特定的含义。它有时被称为URL编码。编码由英文字母替换组成:“%” 后跟替换字符的ASCII的十六进制表示。相关推荐:《Python教程》
需要编码的特殊字符有: ':','/','?','#','[',']','@','!','$','&',"'",'(',')','*','+',',','','=',以及,'%' 本身,其他的字符虽然可以进行编码但是不需要。
根据上下文,空白符 ' ' 将会转换为 '+' (必须在HTTP的POST方法中使定义 application/x-www-form-urlencoded 传输方式), 或者将会转换为 '%20' 的 URL。
用decode()就行。decode()方法必须传入一个参数,这个参数就是当前待转码的编码,此函数方法的用意就是将当前编码为Unicode编码。
比如就你这提问的此页面:
用的编码是gbk,那么你解码为Unicode的方法就是:decode('gbk')。
声明:本代码只是作为测试,并无攻击用意
#使用版本是python2.import urllib
url='https://zhidao.baidu.com/question/1499967322379602619.html?entry=qb_ihome_tag&hideOtherAnswer=true&newAnswer=1'
html=urllib.urlopen(url).read()
result=html.decode('gbk')
print result
方法是绝对可行的
此法对字符串和文档内容的解码一样有效。