URL 编码(也称为百分号编码)是一种将特殊字符(如空格、非字母数字字符等)转换为适合在 URL 中使用的格式的方式。URL 中的字符有很多特殊意义,例如空格、斜杠、问号、等号等。因此,某些字符必须被编码,以确保 URL 的正确性并防止歧义。
URL 编码原理:
URL 编码将非字母数字字符替换为百分号 % 后跟随该字符的 ASCII 十六进制值。例如:
空格 ( ) 被编码为 %20
# 被编码为 %23
& 被编码为 %26
编码规则:
字符串中的每个非字母数字字符(包括符号、空格等)都会被转换为 % 后跟随它们的 ASCII 十六进制值。
字母(A-Z, a-z)和数字(0-9)不需要编码。
示例:
原始文本:hello world!
URL 编码后:hello%20world%21
URL 编码 Python 示例:
在 Python 中,使用 urllib.parse 库来进行 URL 编码和解码。
URL 编码示例:
python
import urllib.parse
# 原始字符串
text = "hello world!"
# URL 编码
encoded_text = urllib.parse.quote(text)
# 输出编码结果
print(f"URL 编码结果: {encoded_text}")
URL 解码:
URL 解码是将百分号编码的字符串还原为原始的字符。使用 urllib.parse.unquote 来解码 URL 编码的字符串。
URL 解码示例:
python
import urllib.parse
# URL 编码的字符串
encoded_text = "hello%20world%21"
# URL 解码
decoded_text = urllib.parse.unquote(encoded_text)
# 输出解码结果
print(f"解码后的文本: {decoded_text}")
使用场景:
Web 开发:在 URL 中传输参数时,需要对参数进行 URL 编码,以确保 URL 格式正确。
API 请求:在 API 请求中,特别是当参数包含特殊字符时,使用 URL 编码来避免错误或歧义。
表单提交:在 HTML 表单提交时,浏览器自动将表单数据进行 URL 编码。