URL传值编码问题

在ActionScript中需要跳转到指定的JSP页面,并通过URL传递参数。(Weblogic服务器)

因所传递的参数中可能存在中文和特殊字符,在ActionScript中对参数进行如下处理:


Actionscript代码
 
1./*仅对字符串中的特殊字符和中文进行编码*/
2.public function URIencode(str:String):String{
3. var rege:RegExp = /%/g;
4. str = str.replace(rege,encodeURIComponent('%25')); //url所传递的值中有'%'
5. var result:String = str;
6. //正则表达式匹配 中文|中文标点
7. var regexp:RegExp = /[\u4e00-\u9fa5]|[,。?:;‘’!“”—……、【】——¥《》()·#"]/;
8. var regexp1:RegExp = /[#+&]/; //特殊分隔符字符仅编码一次
9. for(var i:int=0;i<str.length;i++){
10. if(regexp.test(str.charAt(i))){
11. result = result.replace(str.charAt(i),
12. encodeURIComponent(encodeURIComponent(str.charAt(i))));
13. }else if(regexp1.test(str.charAt(i))){
14. result = result.replace(str.charAt(i),
15. encodeURIComponent(str.charAt(i)));
16. }
17. }
18. return result;
19.}



Actionscript代码

1.var para:String = "根据项目负责人要求调整项目支出-参见2009年8月598#部分";



Actionscript代码
  
1.var linkto:String = "http://localhost:7001/Miracle/test.jsp?1=1";




Actionscript代码
 
1.para = URIencode(para);



然后通过ExternalInterface.call方法跳转到JSP页面:





Actionscript代码
   
1.ExternalInterface.call("window.open",linkto+"&paras="+para);



在JSP页面先通过request方法取到参数paras:





Java代码
 
1.<%
2. String paras = request.getParameter("paras");
3.%>




然后再JavaScript中对参数paras进行解码:





Js代码

1.var param = decodeURI("<%=paras%>");



到此就完成了,还有其他没有想到的希望大家多多指教!





[url=http://huangpengxiao.iteye.com/blog/145316]转:用URL传参带特殊字符,特殊字符丢失[/url]
关键字: url 特殊字符
以前还真没注意过这些特殊字符,只是知道传递的长度有限制,下面也是找的一些资料,测试过没问题。

有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。
如果不使用转义字符,这些编码就会当URL中定义的特殊字符处理。


下表中列出了一些URL特殊符号及编码 十六进制值
1.+ URL 中+号表示空格 %2B

2.空格 URL中的空格可以用+号或者编码 %20

3./ 分隔目录和子目录 %2F

4.? 分隔实际的 URL 和参数 %3F

5.% 指定特殊字符 %25

6.# 表示书签 %23

7.& URL 中指定的参数间的分隔符 %26

8.= URL 中指定参数的值 %3D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值