在其他差异中,urlencode
和rawurlencode
对空格进行了不同的编码。 +
和%20
非常重要。根据PHP文档,变量会自动解码。 PHP如何“知道”解码它的方法?
我曾经使用过urlencode
,直到我在这里看到原始对应物通常更好。我必须说,我从来没有碰到任何解码问题,但我很好奇它是如何工作的,如果你认为有任何情况rawurlencode
会因自动解码而导致问题。
感谢。
答案 0 :(得分:2)
+
字符由两个函数编码为%2B,因此不会产生混淆。
为了安全地解码任何版本,PHP只需将每个%XX
转换为相应的字符,并将每个+
转换为空格。这就是urldecode
的作用。
rawurlencode
不应该引起问题,因为它所做的就是将更多范围的字符编码到它们的%XX对应字符中。这些将由任何版本的函数安全地解码。