前言使用的是http中的get请求,但是又不想明文给别人,加密之后数据就包含了“+”号

知识:提交的参数中有“&”,"+"等特殊符的话,如果不做处理,在service端就会将&后面的作为另外一个参数来看待

例如 list?act=go&state=5 获取到的是actstate的值,

但是如果你想要的是act的值为 “go&state=5” 字符串,就得进行转义(对应可使用通用方法二)

1、空格换成加号(+)  %2B

2、空格url字符可以使用+号或 %2O

3、正斜杠(/)分隔目录和子目录   %2F

4、问号(?)分隔URL和查询  %3F

5、百分号(%)制定特殊字符   %25

6、#号指定书签    &23

7、&号分隔参数  %26

8、=号分隔参数 %3D

解决方法:

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

//请求接口时,客户端向服务器传递参数时,参数中的“+”会变成空格,因为URL中默认的将“+”号转义了
//例如生成的客户端链接为http://licalhost:8080/download?reqStr=sddwc+qwed+drwdef
//传到服务端后台reqStr=sddwc qwed drwdef
//服务端转换之后reqStr=sddwc+qwed+drwdef
reqStr = reqStr.replaceAll(" ","+");

方法二:修改客户端,将客户端带“+”的参数中的“+”全部替换为‍“2B%”,这样参数传到服务器端时就能得到“+”了 (通用方法,可以转义别的特殊字符)   

//java 使用
//请求接口时,客户端向服务器传递参数时,参数中的“+”会变成空格,因为URL中默认的将“+”号转义了
//例如生成的客户端链接为http://licalhost:8080/download?reqStr=sddwc+qwed+drwdef
reqStr = reqStr.replaceAll("\\+","%2B");
//此时的客户端真实链接为http://licalhost:8080/download?reqStr=sddwc%2Bqwed%2Bdrwdef
//到服务器端的reqStr=sddwc+qwed+drwdefjs使用
局部替换
var str = 'abcadeacf';
var str1 = str.replace('a', 'o');
alert(str1);
// 打印结果: obcadeacf
全局替换
var str2 = str.replace(/a/g, 'o');
alert(str2);
//打印结果: obcodeocf处理方法:
function URLencode(sStr)
{  return escape(sStr).replace(/\%/g,"%25").replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
}//IE8不支持escape
function URLencode(sStr)
{  return sStr.replace(/\%/g,"%25").replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
}

方法三:修改服务器端,特殊的:入参为request可以使用,如果是注解方法获取的reqStr则不行

正常情况下获取参数的方法为reuqest.‍getParameter,此时应该使用request.getQueryString().substring(0),然后对得到的字符串进行解析

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

http中url特殊字符转义及解决方法相关推荐

  1. url特殊字符转义及解决方法

    URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 转义字符的原因 ...

  2. url 特殊字符 传递参数解决方法

    url 特殊字符 传递参数解决方法 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码. 十六进制值  1. + UR ...

  3. java url转义_url特殊字符转义及解决方法

    URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 转义字符的原因 ...

  4. shell url转义_url特殊字符转义及解决方法

    URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 转义字符的原因 ...

  5. html转义es,Js特殊字符转义之htmlEscape()方法

    为了防止XSS攻击,常常需要将用户输入的特殊字符进行转义,原生js貌似还没有直接对其专业的方法,最近再读Js高级程序设计的时候刚好看到,碰巧项目中也刚好需要使用次方法,于是就之家搬来用了. 网上关于转 ...

  6. ci mysql 转义,CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析

    本文实例分析了CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患.分享给大家供大家参考,具体如下: php CI框架中URL特殊字符有很多是不支持的,导致像c++,括号这些常用的分 ...

  7. html url 空格转义字符,url特殊字符转义小知识

    摘要 腾兴网为您分享:url特殊字符转义小知识,余额宝,学习帮,小牛,完美志愿等软件知识,以及joinme,hackertyperneo,疯子苹果,mse杀毒软件,心动表情包,巫师3优化补丁,酷娃,米 ...

  8. php mysql自动反转义_ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法...

    这篇文章主要介绍了ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法,主要通过针对magic_quotes_gpc开启的情况下进行检查与判断转义来实现,需要的朋友可以参考下 本文实例讲述了 ...

  9. http url特殊字符转义

    哪些字符需要编码 1.URL特殊字符转义,URL中一些字符的特殊含义,基本编码规则如下: 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定 ...

最新文章

  1. 关于mysql字符集及导入导出
  2. OpenGL绘制复杂图形
  3. 笔记-信息系统开发基础-软件测试-软件测试的类型
  4. 5G发展是绵绵秋雨 应循序渐进
  5. mikechen谈技术人成长的三大原则
  6. python 网站模板_使用Python抓取模板之家的CSS模板
  7. Spring Boot学习总结(22)——如何定制自己的 springboot starter 组件呢?
  8. LeetCode 537. Complex Number Multiplication
  9. paip.输入法编程---词频顺序order by py
  10. 金蝶云星空之表单插件的开发
  11. tf.TensorShape
  12. Instagram登录使用教程目录
  13. APP全栈工程师修炼之路(二)
  14. 2019牛客暑期多校训练营(第九场)A——The power of Fibonacci(循环节+中国剩余定理(互质)||广义BM)
  15. 收藏--真正爱你的男人
  16. 算法复杂度 O(1),O(n),O(logn),O(nlogn)的区别
  17. Android HorizontalScrollView 水平滑动 在listview上面动态添加图片
  18. ZOJ - 4049 Halting Problem 题解【c++】
  19. Apriltag编解码系统
  20. 说说这三四年我用过的语音IC架构

热门文章

  1. 数据仓库简介、数据仓库的发展、数仓理论简介
  2. tensorflow官方Blog-使用Keras Tuner超参数优化框架 进行超参数调整 ,具体实现版本
  3. Go语言实现区块链与加密货币-Part3(交易优化,单机模拟多节点通信)
  4. 说说wps jsa的ListBox控件的数组写入方法
  5. 【计算机组成原理】第一章 概论
  6. 新手如何看k线(图) .
  7. GotW#63 狂乱的代码
  8. 软件工程知识点总结——第三、四部分
  9. 眼镜计算机检查,电脑验光
  10. 2.24-2.28的fsop