参考网址:
https://zhuanlan.zhihu.com/p/38230537
url传回来的时候,也许会有错误字符非ascii的情况
一般出现在python2.7版本里,
python3似乎已经解决这个问题了。
#print response.text
print response.text.encode('utf-8')
用上面的代码,注释掉原先的,调用.endocde
url编码问题
当字符串数据以url的形式传递给web服务器时,字符串中是不允许出现空格和特殊字符的。
因为 url 对字符有限制,比如把一个邮箱放入 url,就需要使用 urlencode 函数,因为 url 中不能包含 @ 字符。
又比如传入中文的时候,我们也需要用urlencode 函数:
import urllib
urllib.urlencode({'data': post_data})
函数用法见网址:
urlencode函数用法
url转义其实也只是为了符合url的规范而已。因为在标准的url规范中中文和很多的字符是不允许出现在url中的。
urlencode的说明:
urlencode — 编码 URL 字符串
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。
此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。
如果要传递的参数不想让人一眼就看出来的话,也可以urlencode一下,url就会变成一段编码后的长长的字符串。
但是这并不是加密,,只是编码!!!