URL传值编码问题
在ActionScript中需要跳转到指定的JSP页面,并通过URL传递参数。(Weblogic服务器)
因所传递的参数中可能存在中文和特殊字符,在ActionScript中对参数进行如下处理:
?
/*仅对字符串中的特殊字符和中文进行编码*/public function URIencode(str:String):String{var rege:RegExp = /%/g;str = str.replace(rege,encodeURIComponent('%25'));//url所传递的值中有'%'var result:String = str;//正则表达式匹配 中文|中文标点var regexp:RegExp = /[\u4e00-\u9fa5]|[,。?:;‘’!“”—……、【】——¥《》()·#"]/;var regexp1:RegExp = /[#+&]/;//特殊分隔符字符仅编码一次for(var i:int=0;i<str.length;i++){if(regexp.test(str.charAt(i))){result = result.replace(str.charAt(i),encodeURIComponent(encodeURIComponent(str.charAt(i))));}else if(regexp1.test(str.charAt(i))){result = result.replace(str.charAt(i),encodeURIComponent(str.charAt(i)));}}return result;}
var para:String = "根据项目负责人要求调整项目支出-参见2009年8月598#部分";
var linkto:String = "http://localhost:7001/Miracle/test.jsp?1=1";
para = URIencode(para);
?
然后通过ExternalInterface.call方法跳转到JSP页面:
?
ExternalInterface.call("window.open",linkto+"¶s="+para);
?
在JSP页面先通过request方法取到参数paras:
?
<% String paras = request.getParameter("paras");%>
?
然后再JavaScript中对参数paras进行解码:
?
var param = decodeURI("<%=paras%>");
?
到此就完成了,还有其他没有想到的希望大家多多指教!
?
?