示例路径:
/foo/boom%2Fpew/bar/
执行urldecode
%2F
会返回/
,这是文件夹分隔符。
显然,这样做并不是一个好主意,但我对它可能导致的问题感兴趣。
此外,同样的问题是否也适用于#?+
等其他字符?可以在路径中允许percent-encoded
版本吗?
答案 0 :(得分:2)
{URL}中某些上下文中保留/
字符,百分比编码可能会改变其含义。在这种情况下,/
是路径部分的段之间的分隔符(不是“文件夹”;它完全取决于服务器将段映射到文件夹名称或其他内容或仅将路径部分视为不可分割的),而%2F
不是;它代表/
作为细分的一部分。这实际上导致的原因取决于解释URL的服务器或其他软件。
参考:STD 66又名。 RFC 3986