在URL中,某些字符具有特殊含义,如斜杠(/
)、问号(?
)、等号(=
)和号(&
)等。为了在URL中传递这些特殊字符,需要对它们进行编码,也就是将它们转换为特定的格式。这通常通过百分号编码(Percent Encoding)实现,即使用%
后跟两个十六进制数字来表示一个字符。
以下是一些常见的URL特殊符号及其编码:
特殊符号 | 编码 | 描述 |
---|---|---|
空格 | %20 | URL中的空格字符 |
+ | %2B | 加号 |
/ | %2F | 目录分隔符 |
? | %3F | 查询字符串的开始 |
% | %25 | 百分号本身 |
# | %23 | 片段标识符的开始 |
& | %26 | 查询字符串中的参数分隔符 |
= | %3D | 键值对中的等号 |
: | %3A | 通常在协议和端口号之间使用 |
; | %3B | 通常在参数值内部使用 |
, | %2C | 逗号 |
. | %2E | 点(在文件扩展名或路径中) |
- | %2D | 连字符(减号) |
_ | %5F | 下划线 |
~ | %7E | 波浪线 |
这只是其中的一部分。实际上,URL编码规则适用于任何不在未保留字符集中的字符。未保留字符集包括字母(A-Z和a-z)、数字(0-9)、-
、_
、.
和~
。这些字符在URL中可以直接使用,无需编码。其他所有字符都需要编码。
当你需要在URL中传递包含特殊字符的字符串时,可以使用编程语言中的URL编码函数来进行编码。例如,在JavaScript中,可以使用encodeURIComponent()
函数;在Python中,可以使用urllib.parse.quote()
函数。