您的位置:首页 > 其它

escape 和 encodeURI 编码传参

2015-08-11 09:40 218 查看
escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。

例:

function mkaction(a,b){
if(a == "中心" || a == ""){
//window.location.href = "login.do?formAction=index";
}else{
//window.parent.
a = escape(a);
window.location.href = "dispatch.do?formAction=tomain&lujing="+a+"&mk="+b;
}
}
直接获取不用解码:

String lujing = request.getParameter("lujing");
request.setAttribute("lujing", lujing);


encodeURI() 函数可把字符串作为 URI 进行编码。

返回值

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

说明

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

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

例:
在jQuery  的Ajax

var drugNameCn = encodeURI(encodeURI(drugNameCn));
var sjName = encodeURI(encodeURI("<%=C.show(yaobcDj.getSjname())%>"));
var ssName = encodeURI(encodeURI("<%=C.show(yaobcDj.getSsname())%>"));

$.ajax({
type: "post",
url: "yaobcQy.do?formAction=savebc",
data: "sqfl=<%=C.show(yaobcDj.getSqfl())%>&sjid=<%=C.show(yaobcDj.getSjid())%>&sjname="+sjName+"&ssid=<%=C.show(yaobcDj.getSsid())%>&ssname="+ssName+"&drugNameCn="+drugNameCn,
success:function(e){
bcid.val(e);
}
});
需要解码
<pre class="java" name="code">String drugNameCn = request.getParameter("drugNameCn");
if(drugNameCn != null && !"".equals(drugNameCn)){
drugNameCn = URLDecoder.decode(drugNameCn,"utf-8");
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: