为什么';%的来源20';在URL中用作空格
我很想知道为什么在URL中使用“%20”作为空间,特别是为什么使用“%20”以及为什么我们首先需要它。它被称为。某些字符不能在URI中(例如为什么';%的来源20';在URL中用作空格,url,encoding,Url,Encoding,我很想知道为什么在URL中使用“%20”作为空间,特别是为什么使用“%20”以及为什么我们首先需要它。它被称为。某些字符不能在URI中(例如,因为它表示URL片段),因此它们可以用(变成%23)字符表示 以下是同一篇文章的摘录: 当保留集中的字符(“保留字符”)已 特定上下文中的特殊含义(“保留目的”),以及URI scheme说有必要将该字符用于其他字符 则必须对字符进行百分比编码。 对保留字符进行百分比编码涉及转换 字符转换为其对应的ASCII字节值,然后 将该值表示为一对十六进制数字。数字
,因为它表示URL片段),因此它们可以用(
变成%23
)字符表示
以下是同一篇文章的摘录:
当保留集中的字符(“保留字符”)已
特定上下文中的特殊含义(“保留目的”),以及URI
scheme说有必要将该字符用于其他字符
则必须对字符进行百分比编码。
对保留字符进行百分比编码涉及转换
字符转换为其对应的ASCII字节值,然后
将该值表示为一对十六进制数字。数字,
前面有用作转义字符的百分号(“%”),
然后在URI中使用,以代替保留字符。(为了
非ASCII字符,通常在
UTF-8,然后每个字节值如上所示。)
空格字符的字符代码为32
:
> ' '.charCodeAt(0)
32
base-16中的20
:
> ' '.charCodeAt(0).toString(16)
"20"
在它前面加一个百分号,你会得到
%20
它使用百分号编码。您可以看到RFC的一部分
百分比编码机制用于表示数据中的八位字节
当该八位字节的对应字符位于
允许的集合或正在用作的分隔符,或在组成部分。百分比编码八位字节编码为字符
三元组,由百分比字符“%”后跟两个
表示该八位字节数值的十六进制数字。对于
例如,“%20”是二进制八位字节的编码百分比
“00100000”(ABNF:%x20),在US-ASCII中对应于空格
字符(SP)
因为URL有严格的语法规则,比如
/
是一个特殊的路径分隔符,URL中不允许有空格,所有字符都必须是ASCII的某个子集。要在URL中嵌入任意字符而不受这些限制,可以对字节进行百分比编码。字节x20
表示ASCII编码(以及大多数其他编码)中的一个空格,因此%20
是它的URL编码版本 因此,在互联网文件名中使用空格是否完全合法,只要它们是正确的百分比编码?当然,这就是百分比编码的目的。