1、對單個字元串編碼
from urllib.parse import quote, unquote
# 編碼
print(quote("美國"))
# %E7%BE%8E%E5%9B%BD
# 解碼
print(unquote("%E7%BE%8E%E5%9B%BD"))
# 美國
2、對key-value字典資料編碼
from urllib.parse import unquote, urlencode
data = {
"name": "Tom",
"country": "美國",
"age": 23
}
# 編碼
print(urlencode(data))
# name=Tom&country=%E7%BE%8E%E5%9B%BD&age=23
# 解碼
print(unquote("name=Tom&country=%E7%BE%8E%E5%9B%BD&age=23"))
# name=Tom&country=美國&age=23
3、自定義實作url解碼
tip: urllib庫沒有提供 urldecode 函數
# 将查詢字元串轉為dict字典資料類型
def urldecode(query):
item = {}
for key_value in unquote(query).split("&"):
key, value = key_value.split("=")
item[key] = value
return item
print(urldecode("name=Tom&country=%E7%BE%8E%E5%9B%BD&age=23"))
# {'name': 'Tom', 'country': '美國', 'age': '23'}
參考
python中的urlencode與urldecode