`

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中的特殊字符,主要可以通过两种方法解决转义问题:一是手动替换为百分号编码,二是使用内置的encodeURIComponent()函数。手动替换的方法适用于已知需要转义...

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

    这篇文章将介绍两种在JavaScript中处理表单提交时URL参数包含特殊字符(如"+")的解决方法。 首先,需要了解在URL中常用的特殊字符及其编码形式,这是因为这些字符如果直接出现在URL参数中,可能会被浏览器误解为...

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

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

    关于附件上传文件名包含特殊字符的问题解决办法

    ### 关于附件上传文件名包含特殊字符的问题解决办法 #### 背景介绍 在互联网应用开发中,经常需要处理用户上传的附件。这些附件可能包括文档、图片、视频等多种类型。然而,在实际操作过程中,可能会遇到一个常见...

    golang json.Marshal 特殊html字符被转义的解决方法

    在这种情况下,原始的URL中包含的特殊字符<、>和&都被转义了,不利于在某些场景下直接使用。 json.Marshal默认的行为是开启HTML转义的,这可以通过源码中的一个结构体encOpts来理解,该结构体中有一个字段escape...

    字符 隐藏 —— 替代性转义

    例如,它们可能显示了如何在图像中隐藏信息,或者展示了字符转义在不同编程语言中的具体使用。 总的来说,字符隐藏和替代性转义是IT行业中不可或缺的概念,它们分别服务于信息的安全隐藏和数据的正确传输。理解并...

    微信小程序中转义字符的处理方法

    例如,可以写一个替换特殊字符的函数replaceSpecialChar(url),该函数接受一个url字符串作为参数,然后将其中的特殊字符转义: ```javascript function replaceSpecialChar(url) { url = url.replace(/"/g, '"'); ...

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

    此外,JavaScript提供了一个内置函数`encodeURIComponent()`,可以用于转义URL中的特殊字符。但在这个问题中,可能需要自定义函数来特定处理加号(+)的转义,如`function rStr(str) { str = str.replace(/\+/g, "%...

    利用JS把URL地址栏%20、%55之类编码转成中文字符

    在IT领域,尤其是在Web开发中,处理URL中的特殊字符编码是一项常见的需求。URL中的某些字符因为具有特殊含义或不被支持,会被转换为十六进制形式的百分号编码(Percent-Encoding),例如空格通常被编码为"%20",而...

    GET方法URL中传递中文参数乱码的解决方法

    JavaScript中的`encodeURI()`函数就是用于此目的的,它会对URL中的特殊字符进行编码,但保留某些特殊字符不变,如冒号、斜线、问号等,方便在URL中使用。 例如,如果我们有一个中文用户名"小甜甜",在前端页面中,...

    js 转义字符及URI编码详解

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

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

    在处理URL时,我们经常会...总结来说,处理URL特殊符号,尤其是`&`,可以通过前端JavaScript转码或者后端编程进行。同时,要关注字符编码的一致性,尤其是在多语言或跨编码环境的网络分享中,以保证数据传输的准确性。

    url传递的参数值中包含&时,url自动截断问题的解决方法

    要解决这个问题,关键在于对URL中的特殊字符进行转义。在URL中,“&”应该被转义为 `%26`。这是因为URL编码是一种将特殊字符转换为安全的ASCII字符序列的过程,以确保它们能够在URL中正确传输。在Java中,我们可以...

    java调用shell向DataX传参,带where条件,特殊字符

    在涉及特殊字符时,DataX的参数可能需要进行URL编码,或者在JSON字符串中使用反斜杠(`\`)进行转义。 以下是一个DataX JSON配置文件的示例,其中包含了一个带特殊字符的where条件: ```json { "job": { "content...

    js中传递特殊字符(+,&)的方法.docx

    在实际开发中,你可能会遇到更多的特殊字符问题,例如在URL中,"&"用于分隔参数,所以也需要编码。对于"&",可以使用`encodeURI()`或`encodeURIComponent()`,但前者不会编码"&"和"#",而后者会。因此,根据实际情况...

    Oracle中插入特殊字符:&和'的解决方法汇总

    在Oracle数据库中,有时我们需要插入包含特殊字符的数据,如URL中的`&`和文本中的单引号`'`。这些字符在SQL语句中具有特定含义,因此直接插入可能会导致语法错误或解析问题。本文将详细介绍如何处理和插入这些特殊...

    易语言源码URL编码转换模块源码.rar

    URL(统一资源定位符)是互联网上的资源地址,但因为URL可能包含特殊字符,如空格、中文等,这些字符在传输过程中可能会引起问题。因此,当URL需要在网络上传输时,通常会使用百分号编码(%XX)来对非字母数字字符...

    UrlTool v.2009-4-13

    然而,由于URL中可能包含非ASCII字符或特殊字符,这些字符在传输过程中可能会引发问题,因此需要进行特定的编码处理。UrlTool v.2009-4-13就是这样一款工具,专门用于URL的编码、加码和解码,以确保数据的正确传输。...

Global site tag (gtag.js) - Google Analytics