url传输中+转为%2B取到变空格的问题

一个加密串,通过url传过来后怎么也解密不了。

原串:

h1tQYMmnx7jdvowi9KnaEM5dHfamJ+rbaRnvhwhUmRAvyxpA2AGzszx5k9K0qdhiQUq7m42SpNbmDgtK11SzA9N4tvuBDpAaR1axfBJWXBLT20dy7FtYvXIPMLwnSMx/v2j0KkjHvrY=

urlencode后的串:

h1tQYMmnx7jdvowi9KnaEM5dHfamJ%2brbaRnvhwhUmRAvyxpA2AGzszx5k9K0qdhiQUq7m42SpNbmDgtK11SzA9N4tvuBDpAaR1axfBJWXBLT20dy7FtYvXIPMLwnSMx%2fv2j0KkjHvrY%3d

通过$_GET收到的串:

h1tQYMmnx7jdvowi9KnaEM5dHfamJ rbaRnvhwhUmRAvyxpA2AGzszx5k9K0qdhiQUq7m42SpNbmDgtK11SzA9N4tvuBDpAaR1axfBJWXBLT20dy7FtYvXIPMLwnSMx/v2j0KkjHvrY=

对比发现,+转成%2B,收到的时候变成了空格。

解决方法:

传之前做urlencode两次:urlencode(urlencode($str))

两次urlencode后的串变成了:

h1tQYMmnx7jdvowi9KnaEM5dHfamJ%252BrbaRnvhwhUmRAvyxpA2AGzszx5k9K0qdhiQUq7m42SpNbmDgtK11SzA9N4tvuBDpAaR1axfBJWXBLT20dy7FtYvZuUePw%252F26RAv2j0KkjHvrY%253D

奇葩的是,通过thinkphp的$_GET收到的串不用decode,直接就是正常串:

h1tQYMmnx7jdvowi9KnaEM5dHfamJ+rbaRnvhwhUmRAvyxpA2AGzszx5k9K0qdhiQUq7m42SpNbmDgtK11SzA9N4tvuBDpAaR1axfBJWXBLT20dy7FtYvXIPMLwnSMx/v2j0KkjHvrY=

其它系统要decode一次。。。

时间: 2024-10-28 22:41:11

url传输中+转为%2B取到变空格的问题的相关文章

获取WINDOW.OPEN url js中的get取值

function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg);   if (r != null) return unescape(r[2]); return null;   } 方法如上:利用正则 调用方式为: getUrlParam

BASE64编码的字符进行URL传输丢失特殊字符的问题

因为BASE64的编码里含有"+"号等特殊字符,在url传输的时候会把+号编程空格,解决这个问题的方法: 请求时把BASE64编码进行url的编码再进行传输 接收时把BASE64编码进行url的解码 //加密 post_data_new=Uri.EscapeDataString(post_data_new); //解密 token = Uri.UnescapeDataString(token);

ajax回调函数中使用$(this)取不到对象的解决方法

如果在ajax的回调函数内使用$(this)的话,实践证明,是取不到任何对象的,需要的朋友可以参考下 $(".derek").each(function(){ $(this).click(function(){ var params = $(this).parent().serialize(); var obj=$(this).parent().siblings("div#caskContent"); var form=$(this).parent(); $.aja

PHP获取指定URL页面中的所有链接

form:http://www.uphtm.com/php/253.html 这个东西其实我们开发人员来讲常用了,以前做一个抓取其它网站友情连接时用过,今天看到一朋友整理了一个PHP获取指定URL页面中的所有链接函数,整理过来我们一起来看看吧. 以下代码可以获取到指定URL页面中的所有链接,即所有a标签的href属性: // 获取链接的HTML代码 $html = file_get_contents('http://www.111cn.net'); $dom = new DOMDocument(

基于网站地址URL传输session信息

在php的学习中,会话是我们常常用到的,那今天我们就来详细讲讲会话中的session: 一.session的工作机制:当开启session后,服务器会在服务器中保存session文件,然后再浏览器保存session的id号,用于获取对应的session信息: 二.下面是文章的重点:基于URL传输session如果按照基本的session方法传输session,那么会用到用户浏览器中的cookie,一旦用户关闭cookie,那么session就不起作用啦!所以接下来我们将要把session的id号

如何在url地址栏中直接写数组参数进行传递

今天博主遇到这样一个问题,就是如何在浏览器url地址栏中直接写入数组参数进行传递,问了身边几个同事,都没有找到成功的书写方法.就开始怀疑是否可以在地址栏中直接写入数组进行传递.开始在谷歌,百度进行搜索查询,也是同样没有找到有用的信息. 也许,大家很少遇到这样的情况. 就这样,我自己开始慢慢的尝试书写,将自己熟悉的几种方式全部都试了一遍,依然传递不对.最后在无意情况下,不小心将参数多复制了一个,点击回车,竟然传递成功了,还是数组结果.瞬间成就满满,虽然只是一个简单小应用. 特此,写一贴给广大博友分

URL地址中中文乱码详解(javascript中encodeURI和decodeURI方法、java.net.URLDecoder.encode、java.net.URLDecoder.decode)

引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生了,该如何解决呢?且听本文详细道来. 1.  问题的引出 在Restful的服务设计中,查询某些信息的时候,一般的URL地址设计为: get /basic/service? keyword=历史 , 之类的URL地址. 但是,在实际的开发和使用中,确是有乱码情况的发生,在后台的读取keyword信息为乱码,无法正确读取. 2. 乱码是如

如何快速的获得url地址中参数名和参数值(在看PHP手册的时候无意间看见这两个函数,猜想能不能搭配使用。)

今天在看手册的时候,无意间看到这两个内置函数parse_url和parse_str.看到他们的用法后,我突然想到能不能利用这两个函数来获得url地址中的参数.为了验证我的猜想,我就以如下url为例子:https://www.baidu.com/baidu?wd=百度&tn=monline_4_dg&ie=utf-8 代码如下: $url = 'https://www.baidu.com/baidu?wd=百度&tn=monline_4_dg&ie=utf-8'; $url_

js获取url链接中的参数

js获取url链接中的参数:url传递参数这是常识,这里就不多介绍了,既然传递参数就要获取参数的值,下面就介绍一下如何实现此功能.代码如下: function request(paras){ var url="softwhy.com?a=1&b=2"; var paraString=url.substring(url.indexOf("?")+1,url.length).split("&"); var paraObj={} for