简介
在Python中,可以使用urllib.parse模块中的quote()和unquote()函数来进行URL地址的编码和解码
编码
quote()
函数用于将字符串进行URL编码,该函数接受一个字符串作为参数,并返回编码后的字符串。例如:
from urllib.parse import quote
s = "http://example.com/?name=张三&age=18"
encoded_s = quote(s)
print(encoded_s)
在上面的例子中,我们使用quote()函数对字符串s进行URL编码,得到了编码后的字符串http%3A//example.com/%3Fname%3D%u5F20%u4E09%26age%3D18
。其中,%3A表示冒号,%2F表示斜杠,%3F表示问号,%26表示“&”符号,%u5F20 和 %u4E09 分别表示“张”和“三”这两个汉字的Unicode编码
解码
unquote()
函数用于将URL编码的字符串进行解码,该函数接受一个字符串作为参数,并返回解码后的字符串。例如:
from urllib.parse import unquote
s = "http%3A//example.com/%3Fname%3D%u5F20%u4E09%26age%3D18"
decoded_s = unquote(s)
print(decoded_s)
在上面的例子中,我们使用unquote()函数对字符串s进行URL解码,得到了解码后的字符串http://example.com/?name=张三&age=18
注意点
需要注意的是,quote()函数和unquote()函数默认使用UTF-8编码进行URL编码和解码。如果要使用其他编码格式,可以在函数调用时指定第二个参数,例如:
from urllib.parse import quote, unquote
s = "http://example.com/?name=张三&age=18"
# 使用GBK编码进行URL编码
encoded_s = quote(s, encoding="GBK")
print(encoded_s)
# 使用GBK编码进行URL解码
decoded_s = unquote(encoded_s, encoding="GBK")
print(decoded_s)
我们分别使用quote()函数和unquote()函数对字符串s进行了GBK编码和解码,得到了相应的结果