为什么浏览器总是将 $ 转换为 %24?

为什么浏览器总是将 $ 转换为 %24?

在浏览器地址栏中输入带有 $ 的 url 时,它会自动将 $ 转换为 %24,为什么浏览器不能按原样发送 url?

例如

执行搜索$在超级用户地址栏中,它会自动转换为 superuser.com/search?q=%24。即 superuser.com 在浏览器地址栏中,它会自动将 url 转换为 %24

浏览器将其显示为编码值有什么原因吗?为什么浏览器不能按 URL 显示?

在进一步探索时,它总是自动转换所有特殊字符,这种编码背后有什么原因吗?

答案1

因为有些字符有特殊含义。

例如,在查询字符串中,& 符号用作键值对之间的分隔符。如果您将 & 符号放入其中一个值中,它看起来就像是值末尾和下一个键开头之间的分隔符。因此,对于此类特殊字符,我们使用百分号编码,以确保数据被无歧义地编码。[参考]

它只是 URL 编码,由于 URL 通常包含 ASCII 集之外的字符,因此必须将 URL 转换为有效的 ASCII 格式。URL 编码将不安全的 ASCII 字符替换为“%”后跟两个十六进制数字。URL 不能包含空格。URL 编码通常将空格替换为加号 (+) 或 %20。

请参阅此处的 URL 编码字符列表。W3学校ASCII 编码参考

相关内容