urlencode / rawurlencode和自动解码

时间:2013-07-08 10:24:14

标签: php

在其他差异中,urlencoderawurlencode对空格进行了不同的编码。 +%20非常重要。根据PHP文档,变量会自动解码。 PHP如何“知道”解码它的方法?

我曾经使用过urlencode,直到我在这里看到原始对应物通常更好。我必须说,我从来没有碰到任何解码问题,但我很好奇它是如何工作的,如果你认为有任何情况rawurlencode会因自动解码而导致问题。

感谢。

1 个答案:

答案 0 :(得分:2)

+字符由两个函数编码为%2B,因此不会产生混淆。

为了安全地解码任何版本,PHP只需将每个%XX转换为相应的字符,并将每个+转换为空格。这就是urldecode的作用。

rawurlencode不应该引起问题,因为它所做的就是将更多范围的字符编码到它们的%XX对应字符中。这些将由任何版本的函数安全地解码。