python怎么将url的中文怎么转码

Python012

python怎么将url的中文怎么转码,第1张

先引入urllib模块

假如我们要对下面的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

方法是绝对可行的

此法对字符串和文档内容的解码一样有效。