php中使用urlencode和JavaScript中urlencode的坑
坑
两个加密结果得到的内容是不一样的。 建议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