撇号(有效字符)采用百分比编码-但仅在某些情况下

时间:2019-07-20 08:18:32

标签: url urlencode

尝试使用Google查找有关De Morgan法则的维基百科文章。

单击链接,然后查看URL。至少在Chrome中,它将是

https://en.wikipedia.org/wiki/De_Morgan%27s_laws

'被百分比编码为%27,尽管它是有效的URL字符(甚至更多,如果您在地址栏中手动将其从%27更改为{{1} },它将起作用)。为什么?

1 个答案:

答案 0 :(得分:1)

尽管撇号可能是有效的char,但URL编码的版本也同样有效!

不确定是否有困难的原因,所以这是一个“软”的答案:如果曾经将URL放入JSON或XML,则必须以某种方式转义Aposthrope(和/或双引号)。将URL编码为清理URL的一部分可以解决此问题,并且可以防止不良的JSON / XML处理和程序员错误。只是实用。

应该可以在HTTP响应的标头等中解码这些特定的有效字符(因此浏览器将它们显示为“正确”),也许不错,但需要额外的工作和代码。请注意,还有一些字符无法进行解码,因此这必须是选择性的!所以至少在这种情况下,我认为还没有完成。因此,如果在整个页面加载操作链的任何步骤中对char进行URL编码,它们都会保持这种状态。