URLENCODE与RAWURLENCODE

我一直不能理解,为什么urlencode与标准的RFC文档有出入,所以对这个函数的用法一直心存疑虑。最近终于抽时间去检查了下stackoverflow上面对这个问题的解释,大概弄清楚了。

首先,对比一下两个函数的不同:

1)不予转义的字符:urlencode(_-.)共三个,rawurlencode(-_.~)共四个,可见多了一个波浪线,前者会把波浪线转换为%7E。

2)特殊转义的字符:urlencode会把空格转换为+,rawurlencode则不会。

urlencode其实是post表单是用的编码方法,也是application/x-www-form-urlencoded 的编码方法。对于URL的编码,更好的方法是符合RFC3986标准的rawurlencode,这也是js中的URIENCODE方法采用的标准。

你可能感兴趣的:(URLENCODE与RAWURLENCODE)