URL编码/解码
当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式)。URL 编码的原则是使用安全字符去表示那些不安全的字符
安全字符,指的是没有特殊用途或者特殊意义的字符。
1. Python实现编码与解码
Python 的标准库urllib.parse模块
中提供了用来编码和解码的方法,分别是urlencode()
与unquote()
方法。
方法 | 说明 |
---|---|
urllib.parse.quote(字符串) | 对字符串进行URL编码 |
urllib.parse.unquote(字符串) | 对字符串进行URL解码 |
编码 quote()
在转换成URL编码后,密文的字母都为大写
使用方法:urllib.parse.quote(字符串)
# coding=utf-8
import urllib
from urllib import parse
txt = '你好'
# URL编码
new_txt = urllib.parse.quote(txt)
print(new_txt) # %E4%BD%A0%E5%A5%BD
解码 unquote()
大写+小写,纯小写,纯大写的形式都可被成功解码
当URL编码时,不需要变更字符串的大小写
使用方法:urllib.parse.unquote(字符串)
# coding=utf-8
import urllib
from urllib import parse
txt = '%e4%BD%A0%E5%A5%BD'
# URL解码
new_txt = urllib.parse.unquote(txt)
print(new_txt) # 你好