简单点说这两者得到的结果是不同的。

两个加密结果得到的内容是不一样的。 建议php中弃用urlencode,使用rawurlencode

  • rawurlencode遵守是94年国际标准备忘录RFC 1738

urlencode实现的是传统做法,和上者的主要区别是对空格的转义是'+'而不是'%20' javascript的encodeURL也是94年标准,而javascript的escape是另一种用"%xxx"标记unicode编码的方法。

例子

原始内容:2017年 2月23日 星期四

PHP:

  • urlencode:2017%E5%B9%B4+2%E6%9C%8823%E6%97%A5+%E6%98%9F%E6%9C%9F%E5%9B%9B

  • rawurlencode:2017%E5%B9%B4%202%E6%9C%8823%E6%97%A5%20%E6%98%9F%E6%9C%9F%E5%9B%9B

JavaScript:

  • encodeURI:2017%E5%B9%B4%202%E6%9C%8823%E6%97%A5%20%E6%98%9F%E6%9C%9F%E5%9B%9B