urlencode
urlencode 是一种将字符串转换为 URL 安全格式的方法。它的主要作用是对 URL 中的特殊字符进行编码,使其能够被正确解析。例如,在 URL 中,空格会被编码为 %20,而 & 会被编码为 %26。
在 Python 中,可以使用 urllib.parse 模块的 quote 和 urlencode 函数来进行 URL 编码:
- 单个字符串编码:
from urllib.parse import quote
text = “Hello World!”
encoded_text = quote(text)
print(encoded_text) # 输出: Hello%20World%21
- 字典编码(用于 URL 参数):
from urllib.parse import urlencode
params = {‘name’: ‘John Doe’, ‘age’: 25, ‘city’: ‘New York’}
encoded_params = urlencode(params)
print(encoded_params) # 输出: name=John+Doe&age=25&city=New+York
在这种编码格式下,特殊字符会被转换成“%”加上两个16进制的数字的格式,以确保它们在 URL 中能够被正确传递。
hex encoding
Hex(十六进制)编码是一种将数据表示为十六进制格式的编码方法。通常在处理字节数据时使用,以便以可读的方式表示二进制数据。每个字节的数据用两个十六进制字符来表示。在 Python 中,可以使用 hex() 方法或 binascii 模块来进行 hex 编码。使用方法1. 将字符串转换为十六进制编码:text = “Hello”
hex_encoded = text.encode(“utf-8”).hex()
print(hex_encoded) # 输出: 48656c6c6f2.
将字节数据转换为十六进制编码:byte_data = b”Hello”
hex_encoded = byte_data.hex()
print(hex_encoded) # 输出: 48656c6c6f3.
将十六进制解码为字符串:hex_encoded = “48656c6c6f”
decoded_text = bytes.fromhex(hex_encoded).decode(“utf-8”)
print(decoded_text) # 输出: Hello
使用 binascii 模块binascii 模块提供了更多的 hex 编码和解码功能。import binascii
# 编码text = “Hello”hex_encoded = binascii.hexlify(text.encode(“utf-8”))
print(hex_encoded) # 输出: b’48656c6c6f’
# 解码decoded_text = binascii.unhexlify(hex_encoded).decode(“utf-8”)
print(decoded_text) # 输出: HelloHex 编码常用于网络传输和数据存储中,使二进制数据更容易阅读和传递。