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

转义字符的原因:

如果你的表单使用get方法提交,并且提交的参数中有“&”等特殊符的话,如果不做处理,在service端就会将&后面的作为另外一个参数来看待。例如 
表单的action为list.jsf?act=go&state=5 
则提交时通过request.getParameter可以分别取得act和state的值。 
如果你的本意是act='go&state=5'这个字符串,那么为了在服务端拿到act的准确值,你必须对&进行转义

url转义字符原理:

将这些特殊的字符转换成ASCII码,格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。

  1. URL特殊符号及对应的十六进制值编码:
  2. 1. +  URL 中+号表示空格 %2B
  3. 2. 空格 URL中的空格可以用+号或者编码 %20
  4. 3. /  分隔目录和子目录 %2F
  5. 4. ?  分隔实际的 URL 和参数 %3F
  6. 5. % 指定特殊字符 %25
  7. 6. # 表示书签 %23
  8. 7. & URL 中指定的参数间的分隔符 %26
  9. 8. = URL 中指定参数的值 %3D

解决方法如下(以+号为例):

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

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

例子:

  1. String a = reuqest.‍getParameter("clientStr")‍.replace(' ','+');

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

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

例子:

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

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

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

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

  1. ‍function URLencode(sStr)
  2. {
  3. return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
  4. }

本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/532231,如需转载请自行联系原作者

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

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

    前言:使用的是http中的get请求,但是又不想明文给别人,加密之后数据就包含了"+"号 知识:提交的参数中有"&","+"等特殊符 ...

  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. html url 空格转义字符,url特殊字符转义小知识

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

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

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

  8. http url特殊字符转义

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

  9. 织梦 plus/download.php,织梦DedeCMS 5.7SP1 /plus/download.php url重定向漏洞的解决方法

    最近使用scanv网站体检发现有DedeCMS 5.7SP1 /plus/download.php url重定向漏洞(如下图),对比官方网站最新下载包发现该漏洞未进行补丁,但官方自身网站已经补上了,而 ...

最新文章

  1. 201771010106东文财《面向对象程序设计(java)》实验12
  2. 数据结构 链表(一)
  3. 《计算机组成与体系结构:性能设计》读后小记 4、cache存储器
  4. 关于lvalue and rvalue
  5. 一维卷积神经网络_序列特征的处理方法之二:基于卷积神经网络方法
  6. Linux 目录栈及目录切换
  7. 服务器磁盘空间占用,大文件查找
  8. 【Flink】flink on yarn 并行度设置高导致任务失败
  9. Kafka : kafka重启报错 ZkClient allready closed
  10. Linux下实现多线程异步管道
  11. 华为服务器重装操作系统,华为服务器安装操作系统
  12. ubuntu配置IP并且生效
  13. 大数据分析师高级证书_有大数据分析师资格证书吗?
  14. iscsi btrfs 扩容操作
  15. Ubuntu14.04下nfs服务器的搭建
  16. Retrofit简单使用(小白都会了)
  17. 永恒之蓝漏洞ms17-010
  18. [深度学习]Part1 Python学习进阶Ch24图像处理OpenCV(24.1~24.13)——【DeepBlue学习笔记】
  19. oracle开源数据库审计,oracle数据库审计
  20. 实验操作:Squid代理服务器应用(传统代理透明代理)--------------------------------------就整吧

热门文章

  1. android自定义minitype,MiniType部类以及扩展名
  2. mysql分区有好处吗_mysql 分区有实用价值吗?
  3. tensorflow学习(5.实际图片的读取以及lenet-5的搭建)
  4. 【人脸表情识别】情绪识别相关会议、比赛汇总(2018-2020)
  5. 全球及中国6氯5氨基邻甲酚行业深度调研与运营潜力分析报告2022版
  6. 为何优秀的Java程序员如此难招?
  7. js实现返回顶部功能的解决方案
  8. PostgreSQL 数据库备份
  9. Codeforces Round #484 (Div. 2) A. Row
  10. JavaScript开发