URL 传+号到后台变空格问题解决方案

来源:互联网 发布:windows自动执行php 编辑:程序博客网 时间:2024/06/10 09:52
方法一、修改客户端,将客户端带“+”的参数中的“+”全部替换为‍“2B%”,这样参数传到服务器端时就能得到“+”了。


方法二、修改服务器端,将空格替换为“+”,这种方式只适用于参数中有‍“+”没有空格的情况。


例子:
<pre class="prettyprint linenums" >
String a = reuqest.‍getParameter("clientStr")‍.replace(' ','+');
</pre>
如果客户端为clientStr=test+OK,那么a的值为test+OK;


方法三、修改服务器端,将获取参数的方法由‍reuqest.‍getParameter改为‍request.getQueryString().substring(0),然后对得到的字符串进行解析。


例子:
<pre class="prettyprint linenums" >
‍‍String a =request.getQueryString().substring(0);
</pre>


‍如果客户端为clientStr=test+OK,那么a的值为‍clientStr=test+OK,需要再解析一下,


a=a.‍substring(10);得到a的值为‍test+OK。


附:一个JS,用来转义URL中特殊字符的。
<pre class="prettyprint linenums" >
‍function URLencode(sStr)
{
    return escape(sStr).replace(/\+/g, '+').replace(/\"/g,'"').replace(/\'/g, ''').replace(/\//g,'/');
}
</pre>


还一种方案
<pre class="prettyprint linenums" >
encodeURIComponent(querySql);
strURL = "search.do?param=" + encodeURIComponent(str);
</pre>
普通的传参出现乱码问题,可使用encodeURI来转译,它会转译成UTF-8的格式;
strURL = "search.do?param=" + encodeURI(str);
0 0
原创粉丝点击