escape 和 encodeURI 编码传参
2015-08-11 09:40
218 查看
escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。
该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。
例:
encodeURI() 函数可把字符串作为 URI 进行编码。
该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#
例:
在jQuery 的Ajax
该方法不会对 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"); }
相关文章推荐
- extjs 4 checkboxgroup Panel的简单用法
- sql注入的一些整理
- C# Stream 和 byte[] 之间的转换,字符串可以转换成byte[]
- (!)Python 各种测试框架简介
- 关于JWPLAYER播放MP4出现video not found or access denied
- 白话设计模式之--模板方法
- 程序员未来发展三大方向
- BBS死了?江湖永远都在,只是换个山头
- 线程池C++
- 养生习惯
- 17-集合框架-20-常用对象API(集合框架练习)
- 前言(必读)
- 关于程序员工作 交接的一些注意事项
- Java 多线程之内存一致性错误
- C++概念整理
- public, protected, private, internal, protected internal简析
- 安装 Graphviz
- Win 10只用Edge浏览器?是否应该卸载掉IE
- 为什么程序员的业余项目大多都死了?
- C++11 STL之emplace() 和 emplace_back()