URL中带加号"+"的处理

我在做get请求参数链接的时候 参数值为了安全加密 但是加密后出现有"+"字符串 结果在获取的时候读取不到 

查了下JS encode 的相关内容, 总于发现+ 号的秘密。
   html 中因为一些非标准的做法,将+ 等同于空格进行处理 (当Html 的表单被提交时, 每个表单域都会被Url 编码之后才在被发送。由于历史的原因,表单使用的Url 编码实现并不符合最新的标准。例如对于空格使用 的编码并不是%20 ,而是+ 号,如果表单使用的是Post 方法提交的,我们可以在HTTP 头中看到有一个Content-Type 的header ,值为 application/x-www-form-urlencoded ,大部分应用程序均能处理这种非标准实现的Url 编码)。

解决办法 在链接参数值有"+"的进行url encode编码 然后 再解码获取 
注意:在php中 本人测试在tp框架内 用$_GET 和$this->request->param() 获取的 进行过 url encode 加密过的get请求参数 已经被自动url decode一遍了 而在post中 需要 手动url decode

posted @ 2017-09-01 18:41  加菲猫and大白  阅读(2594)  评论(0编辑  收藏  举报