博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
URL 传+号到后台变空格问题解决方案
阅读量:5929 次
发布时间:2019-06-19

本文共 857 字,大约阅读时间需要 2 分钟。

hot3.png

今天在调试客户端向服务器传递参数时,参数中的“+”全部变成了空格,原因是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,'/');
}

 

还一种方案

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

普通的传参出现乱码问题,可使用encodeURI来转译,它会转译成UTF-8的格式;
strURL = "search.do?param=" + encodeURI(str);

转载于:https://my.oschina.net/selfdesign/blog/514335

你可能感兴趣的文章
[LeetCode] Jump Game II 跳跃游戏之二
查看>>
[LeetCode] Rotate Image 旋转图像
查看>>
strcpy_s与strcpy的比較
查看>>
【前端攻略】最全面的水平垂直居中方案与flexbox布局
查看>>
lufylegend:加载进度
查看>>
Android开发 Failed to install *.apk on device 'emulator-5554': EOF
查看>>
java获取当月天数,指定年月的天数,指定日期获取对应星期
查看>>
Valid Number
查看>>
lintcode:Coins in a Line 硬币排成线
查看>>
《Programming WPF》翻译 第9章 6.我们进行到哪里了?
查看>>
【BZOJ】1119: [POI2009]SLO
查看>>
Servlet作业2-将表单提交的商品信息输出到页面中
查看>>
札记:计算机网络篇:物理层
查看>>
jQuery操作cookie
查看>>
漫游Kafka设计篇之数据持久化
查看>>
致佳音: 推箱子游戏自己主动求解算法设计(四)
查看>>
2014-10深圳全球架构师峰会
查看>>
Oracle常用命令大全
查看>>
Linuxshell脚本之if条件判断
查看>>
【Linux&Unix--open/close/write/read系统调用】
查看>>