JS/JSP/Java 中 URL/参数 的转义

1、

URLEncoder.encode

URLDecoder.decode

2、

2.1、encodeURIComponent :

返回值

URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

说明

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ‘ ( ) 。

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

提示和注释

提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

2.2、encodeURI :

返回值

URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

说明

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ‘ ( ) 。

该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

提示和注释

提示:如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

3、

时间: 2024-10-05 15:31:53

JS/JSP/Java 中 URL/参数 的转义的相关文章

JS 和 Java 中URL特殊字符编码方式

前几天遇到url特殊字符编码的问题,在这里整理一下: JavaScript 1.  编码 escape(String) 其中某些字符被替换成了十六进制的转义序列. 解码 unescape(String) 该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码. *注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decode

java中URL参数的中文乱码问题

**同学们在url传参的时候 是否应为传了中文导致各种乱码问题呢? URL传参中文对于程序员来说,是个很头疼的问题吧.虽然在尽量避免使用中文参数,但总有避免不了的时候.现就自己的经验,总结如下:** 1.将字符串转码:newString("xxxxx".getBytes("iso-8859-1"),"utf-8") 这种转码方式有很大的弊端,因为它是使用指定的字符集将此String编码为 byte 序列,并将结果存储到一个新的byte 数组中,然

Ajax的底层实现--使用Ajax实现无刷新登录实例--解决ajax中URl参数带中文的乱码问题

  1.jsp代码 第一部分(html代码):前端页面 <div id="login"> 用户名: <input type="text" id="userName"/> <!--用户名--> 密码: <input type="password" id="psw"/> <!--密码--> <input type="submit&quo

js和java中正则表达式的易混淆点

js中正则表达式的使用 对表单中的值进行正则表达式匹配一般有两种方法: var reg = new RegExp(regStr); reg.test(value); 如下: var reg = new RegExp("\\d{3}"); reg.test("abc123def"); 结果:true 注:new RegExp中传的是正则表达式的字符串,\需要用\转义. str.match(regex);      如"abc123def".matc

java中URL 的编码和解码函数

java中URL 的编码和解码函数java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);在javascript 中URL 的编码和解码函数escape(String s)和unescape(String s) ; 在前台:var url="test.jsp?param="+escape('this%is#te=st&o k?+/');在后台: String param=request.

JAVA 中URL中文参数乱码的处理方法(汇总)

解决输入的全角汉字或者日文在URl中乱码的问题.以下我的实现 JS代码: function shiborikomuFw() {     var url = '${url08}';     var str = document.getElementsByName('fw');     //Str str = document.getElementsById('fw').Value;     for (var i = 0; i < str.length; i++) {     url = url +

关于JAVA中URL传递中文参数的问题

今天在调用一个接口时,需要传递一个中文参数,结果获取不到数据,原因就在于中文传参的编码问题. 问题来源:URL url= new URL("http://XXX?OrganName=司法厅"); 现解决办法如下: 1.对要进行URL传递的中文字符进行编码: String message = Java.NET.URLEncoder.encode("司法厅","utf-8"); 2.在取URL传递中文的页面对字符进行解码: String msg =

程序ajax请求公共组件app-jquery-http.js中url参数部分的项目应用

结合微信登录以及微信支付的案例:= =||| (案例比较奇葩复杂) 简述项目流程: 1.获取用于公众号支付的openid(公众平台):在微信内置浏览器中打开网页链接,刚进入页面就通过微信公众平台获取该微信用户的code,拿到code传给后台,换取用户的openid. 2.微信登录(开放平台):微信登录通过微信开放平台,由于第一步公众平台拿到的code会混淆开放平台的code,导致用户使用微信登录失败,就需要使用该插件将url参数重置. 3.微信支付(公众平台):像后台传输步骤一获取的openid

JS获取jsp页面中的参数

有如下代码: //java代码 [html] view plain copy <%String parm="hello word"%> [html] view plain copy //html代码 <input type="hidden" id="test" value="<%=parm%>"> //js代码 <script type="text/javascript&qu