撇号(有效字符)是百分比编码的——但只是有时
Apostrophe (valid char) is percent-encoded - but only sometimes
尝试使用 Google 查找有关德摩根定律的维基百科文章。
单击 link,然后查看 URL。至少在 Chrome,它将是
https://en.wikipedia.org/wiki/De_Morgan%27s_laws
'
被百分比编码为 %27
,尽管它是一个有效的 URL 字符(甚至更多,如果您在地址栏中手动将其从 %27
到 '
,它会起作用)。为什么?
虽然撇号可能是有效的字符,但 URL-encoded 版本也同样有效!
不确定是否有确凿的理由,所以这有点 "soft" 回答:撇号(and/or 双引号)需要以某种方式转义,如果 URL 被放入例如 JSON 或 XML。 URL 将它们编码为清理 URL 的一部分解决了这一问题,并防止 JSON/XML 处理不当和程序员错误。就是实用。
解码 HTTP 响应中的这些特定有效字符 headers 等(以便浏览器显示它们 "right")应该是可能的,也许不错,但需要额外的工作和代码。请注意,还有一些字符无法解码,所以这必须是有选择性的!所以至少在这种情况下,我猜它还没有完成。因此,如果一个字符在整个页面加载操作链的任何一步获得 URL-encoded,它们将保持这种状态。
尝试使用 Google 查找有关德摩根定律的维基百科文章。
单击 link,然后查看 URL。至少在 Chrome,它将是
https://en.wikipedia.org/wiki/De_Morgan%27s_laws
'
被百分比编码为 %27
,尽管它是一个有效的 URL 字符(甚至更多,如果您在地址栏中手动将其从 %27
到 '
,它会起作用)。为什么?
虽然撇号可能是有效的字符,但 URL-encoded 版本也同样有效!
不确定是否有确凿的理由,所以这有点 "soft" 回答:撇号(and/or 双引号)需要以某种方式转义,如果 URL 被放入例如 JSON 或 XML。 URL 将它们编码为清理 URL 的一部分解决了这一问题,并防止 JSON/XML 处理不当和程序员错误。就是实用。
解码 HTTP 响应中的这些特定有效字符 headers 等(以便浏览器显示它们 "right")应该是可能的,也许不错,但需要额外的工作和代码。请注意,还有一些字符无法解码,所以这必须是有选择性的!所以至少在这种情况下,我猜它还没有完成。因此,如果一个字符在整个页面加载操作链的任何一步获得 URL-encoded,它们将保持这种状态。