分享你我的心得.
共乘一片美好网络.

java+号变空格URL 传+号到后台变空格问题

解决方法如下:

方法一、修改客户端,将客户端带“+”的参数中的“+”全部替换为‍“2B%”,这样参数传到服务器端时就能得到“+”了。

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

例子:

String a = reuqest.‍getParameter(“clientStr”)‍.replace(‘ ‘,’+’);

如果客户端为clientStr=test+OK,那么a的值为test+OK;

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

例子:

‍‍String a =request.getQueryString().substring(0);

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

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

附:一个JS,用来转义URL中特殊字符的。

‍function URLencode(sStr)

{
return escape(sStr).replace(/+/g, ‘+’).replace(/\”/g,'”‘).replace(/\’/g, ”’).replace(/\//g,’/’);

}

还一种方案 –我用的

encodeURIComponent(querySql);

strURL = “search.do?param=” + encodeURIComponent(str);

普通的传参出现乱码问题,可使用encodeURI来转译,它会转译成UTF-8的格式;

strURL = “search.do?param=” + encodeURI(str);

很奇怪的问题

赞(0)
未经允许不得转载:小叶白龙博客 » java+号变空格URL 传+号到后台变空格问题
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!