URLENCODE与RAWURLENCODE

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

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

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

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

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

相关文章
相关标签/搜索