`

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

 
阅读更多
  1. URL特殊字符需转义   
  2.  
  3. 1、空格换成加号(+)   
  4. 2、正斜杠(/)分隔目录和子目录   
  5. 3、问号(?)分隔URL和查询   
  6. 4、百分号(%)制定特殊字符   
  7. 5、#号指定书签   
  8. 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.  
  3. 1. +  URL 中+号表示空格 %2B   
  4. 2. 空格 URL中的空格可以用+号或者编码 %20   
  5. 3. /  分隔目录和子目录 %2F    
  6. 4. ?  分隔实际的 URL 和参数 %3F    
  7. 5. % 指定特殊字符 %25    
  8. 6. # 表示书签 %23    
  9. 7. & URL 中指定的参数间的分隔符 %26    
  10. 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. }
分享到:
评论

相关推荐

    两种方法解决javascript url post 特殊字符转义 + & #

    本文主要介绍javascript使用url传值的时候数据丢失的问题,希望对大家有所帮助。

    url参数中有+、空格、=、%、、#等特殊符号的问题解决

    解决办法将这些字符转化成服务器可以识别的字符,对应关系如下:URL字符转义 用其它字符替代吧,或用全角的。 + URL 中+号表示空格 + 空格 URL中的空格可以用+号或者编码 / 分隔目录和子目录 / ? 分隔实际的...

    js的form表单提交url传参数(包含+等特殊字符)的两种解决方法

    下面小编就为大家带来一篇js的form表单提交url传参数(包含+等特殊字符)的两种解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    js 转义字符及URI编码详解

    ,%,#,&,=等特殊字符串符号时,因为上述字符有特殊含义,导致服务器端无法正确解析参数,如何处理?解决办法:将这些字符转化成服务器可以识别的字符。 如果要在URL中传递特殊符号的原本意义,要对他们进行编码。...

    简单实例处理url特殊符号&处理(2种方法)

    url里的参数内容包含&符合,我有两种方法解决一是:在页面用JS转码;二是:在后端处理,另外还有网络分享的一些方法,感兴趣的朋友可以参考下哈

    URL的参数中有加号传值变为空格的问题(URL特殊字符)

    今天在调试客户端向服务器传递参数时,参数中的“+”全部变成了空格,原因是URL中默认的将“+”号转义了,经过以下步骤解决了,需要的朋友可以参考一下

    支持中文目录wget版本,linux版本

    url_file_name()在根据url的形式判断该保存为什么样的文件名,并进行了多方面的考虑,最终该函数调用了append_uri_pathel(),该函数会判断url中的特殊字符,例如空格等,如果遇到这些字符wget把它进行转义,而问题就...

    正则表达式经典实例.pdf

     处理单词、文本行、特殊字符和数值;  学习如何在URL、路径、标记语言和数据交换中使用正则  表达式;  学习更高深的正则表达式特性中的微妙之处;  理解在不同语言中正则表达式的APl、语法和行为之间的  ...

    正则表达式经典实例

     处理单词、文本行、特殊字符和数值;  学习如何在URL、路径、标记语言和数据交换中使用正则  表达式;  学习更高深的正则表达式特性中的微妙之处;  理解在不同语言中正则表达式的APl、语法和行为之间的 ...

    解决js数据包含加号+通过ajax传到后台时出现连接错误

    昨天有人提出一个bug,说“B+侦探”和”C+侦探”不能看,我当时很郁闷,因为其他资源是可以播放的,为什么这个不能播放,而且电影名称我都... 关于特殊字符的转义,网上很多,我写这个主要是帮大家排查问题提供一点思想

    Java-PHP-C#

    转义符号除了用于分隔符外还可以执行特殊字符,全部由字母构成的特殊字符都需要"\"来转义,比如"\d"代表全体数字。 4 正则表达式的特殊字符: 正则表达式中的特殊字符分为元字符、定位字符等等。 元字符是...

    弹出窗口中的Google日历可点击链接「Google Calendar Clickable Links in Popups」-crx插件

    此扩展程序解决了这两个问题,方法是先删除错误使用的带有空格字符的零,然后在where字段中找到任何http链接并使它们可单击。可以在这里找到源代码:http://github.com/jonathanfalkner/gcal_clickable 支持语言:...

    《javaScrip开发技术大全》源代码

    • sample02.htm 使用转义字符 • sample03.htm 数组直接量的使用方法 • sample04.htm 数组直接量 • sample05.htm 函数直接量的使用方法 • sample06.htm 对象直接量 第...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例043 使用转义字符输出特殊字符 74 实例044 使用常量指定PI的值计算圆的面积 75 2.2 运算符 75 实例045 自定义数字的加密/解密算法 76 实例046 比较两个时间戳的大小 77 实例047 使用条件运算符判断数字的奇偶性 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例043 使用转义字符输出特殊字符 74 实例044 使用常量指定PI的值计算圆的面积 75 2.2 运算符 75 实例045 自定义数字的加密/解密算法 76 实例046 比较两个时间戳的大小 77 实例047 使用条件运算符判断数字的奇偶性 ...

    PHP开发实战1200例源码

    实例043 使用转义字符输出特殊字符 74 实例044 使用常量指定PI的值计算圆的面积 75 2.2 运算符 75 实例045 自定义数字的加密/解密算法 76 实例046 比较两个时间戳的大小 77 实例047 使用条件运算符判断数字的奇偶性 ...

    Web安全深度剖析(张柄帅)

    5.5.2 特殊字符转义 101 5.5.3 使用预编译语句 102 5.5.4 框架技术 103 5.5.5 存储过程 104 5.6 小结 105 第6章 上传漏洞 106 6.1 解析漏洞 106 6.1.1 IIS解析漏洞 106 6.1.2 Apache解析漏洞 109 6.1.3 PHP CGI解析...

    php正则表达式基本知识与应用详解【经典教程】

    分享给大家供大家参考,具体如下: ...④ 特殊字符有哪些 ⑤ 什么是逆向引用以及怎样使用逆向引用 ⑥ 匹配模式 ⑦ php中怎样使用正则表达式 ⑧ php中哪些方面需要用到正则 ⑨ 怎样进行邮箱匹配,url

    PHP程序开发范例宝典III

    实例115 验证字符串是否以指定字符串开头 172 实例116 验证身份证号码 174 实例117 验证护照编号 175 实例118 验证车牌号码 176 4.4 自定义验证 177 实例119 验证合法的数据表名称 178 实例120 验证...

Global site tag (gtag.js) - Google Analytics