原创仅供学习,转载请注明出处
需求背景
有时候通过浏览器传递过来的数据,经过url编码之后,就无法直接处理了。
需要进行反编码之后才能获取正确的结果。
下面使用ipython演示一下。
url编码以及反编码演示
In [50]: import urllib.parse
## 首先模仿浏览器生产的编码格式,不管是中文或者空格都会转码
In [51]: urllib.parse.quote('终极肥仔白')
Out[51]: '%E7%BB%88%E6%9E%81%E8%82%A5%E4%BB%94%E7%99%BD'
## 使用 unquote 进行反编码,这个步骤基本都是服务端接受浏览器传递的数据时候处理
In [52]: urllib.parse.unquote("%E7%BB%88%E6%9E%81%E8%82%A5%E4%BB%94%E7%99%BD")
Out[52]: '终极肥仔白'
In [53]: urllib.parse.quote('胖子老板:槟榔1元一包啦!! 手快有,手慢没啦。 真的啊?')
Out[53]: '%E8%83%96%E5%AD%90%E8%80%81%E6%9D%BF%EF%BC%9A%E6%A7%9F%E6%A6%941%E5%85%83%E4%B8%80%E5%8C%85%E5%9
5%A6%EF%BC%81%EF%BC%81%20%20%E6%89%8B%E5%BF%AB%E6%9C%89%EF%BC%8C%E6%89%8B%E6%85%A2%E6%B2%A1%E5%95%A6%E3%80
%82%20%20%E7%9C%9F%E7%9A%84%E5%95%8A%EF%BC%9F'
In [55]: urllib.parse.unquote('%E8%83%96%E5%AD%90%E8%80%81%E6%9D%BF%EF%BC%9A%E6%A7%9F%E6%A6%941%E5%85%83%
...: E4%B8%80%E5%8C%85%E5%95%A6%EF%BC%81%EF%BC%81%20%20%E6%89%8B%E5%BF%AB%E6%9C%89%EF%BC%8C%E6%89%8B%
...: E6%85%A2%E6%B2%A1%E5%95%A6%E3%80%82%20%20%E7%9C%9F%E7%9A%84%E5%95%8A%EF%BC%9F')
Out[55]: '胖子老板:槟榔1元一包啦!! 手快有,手慢没啦。 真的啊?'
In [56]: