URL转义字符

精贴 置顶
3574 0

  1. url转义字符原理

如果表单的action为list.jsf?act=go&state=5

则提交时通过request.getParameter可以分别取得act和state的值。

如果你的本意是act='go&state=5'这个字符串,那么为了在服务端拿到act的准确值,你必须对&进行转义

[预备知识]
 
        对与通过get方式提交的url,浏览器在提交前首先根据http协议把一一个的参数及其值解析配对。而url的参数间是通过&分割的,这就是浏览器进行参数配置的分割依据。如果你的参数值中含有&等url特殊字符,那么你在服务器端就会拿到意想不到的值。所以必须对url的特殊字符进行转义。
编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如空格的编码值是"%20"。
下表中列出了一些URL特殊符号及编码
 

[十六进制值]
1. +  URL 中+号表示空格 %2B
2. 空格 URL中的空格可以用+号或者编码 %20
3. /  分隔目录和子目录 %2F 
4. ?  分隔实际的 URL 和参数 %3F 
5. % 指定特殊字符 %25 
6. # 表示书签 %23 
7. & URL 中指定的参数间的分隔符 %26 
8. = URL 中指定参数的值 %3D

所以上述的action你应该写成list.jsf?act=go%26state=5


            我在互动系统开发中,需要通过ajax传递用户输入的消息到服务器,期间有特殊字符无法正确传输。原因就是因为url中会对特殊字符解析错误。解决方法是,在javascript脚本中提交之前,用正则表达式匹配然后将其替换为对应的编码。(以下是部分脚本)

  var patrn1=/[#]/g;
  var patrn2=/[&]/g;
  var patrn3=/[%]/g;
  var patrn4=/[+]/g;  
  //先替换其中的 % ,
  inputTalk.value = inputTalk.value.replace(patrn3,"%25");
  inputTalk.value = inputTalk.value.replace(patrn1,"%23");
  inputTalk.value = inputTalk.value.replace(patrn2,"%26"); 
  inputTalk.value = inputTalk.value.replace(patrn4,"%2B");

  • 没有任何评论
今日天气 ···

···

···

···

热门排行
用ASP实现网页BBS 2010-11-01
CSS cursor鼠标样式一览表 2012-06-25
.NET后台写JS代码 2011-11-03
网站地址多出jdfwkey的问题解析及... 2010-08-25
数据库xxx的日志已满,请备份该数... 2013-07-19
百度、google、Yahoo网站地图制作... 2011-01-30
<a>标签的伪类书写顺序问题... 2010-09-04
什么是长尾关键词? 2010-09-24
CEO名言 2010-08-31
Mysql 主从数据库同步 2010-09-12
博主推荐
本个人博客微信公众平台上线啦~~... 2013-10-13
饼哥网络互联上线啦~~要买域名空... 2013-09-20
网站title标题如何正确修改不会被... 2013-08-26
饼哥通讯录系统上线啦,欢迎大家... 2013-08-24
ASP .NET MYSQL 的简单分页 并不... 2013-08-19
网站有弹窗广告这样的站点,百度... 2013-08-17
做淘宝SEO优化需要注意的8大问题 2013-08-17
淘宝网怎么做SEO优化 2013-08-17
站长们要学习的“苍井空精神” 2013-08-17
苹果公司今日发布了iOS 7第五个开... 2013-08-07
随便看看
去哪儿购买域名和域名注册 2013-06-23
ajaxpro.2.dll web.config配置 2013-08-22
如何配置java环境变量路径 2010-08-31
Win XP默认Guest帐户设置修改攻略... 2010-10-21
趣味编程:Java扫雷算法 2013-06-26
其它的ASP常用组件 2010-10-22
asp全面解析Server对象 2010-10-25
常用的ASPActiveX 组件 2010-10-22
使用JAVA访问ACCESS数据库的方法 2013-06-24
关系运算符 2010-10-18
RSS新闻
传媒新闻
CSDN
八卦新闻
女性新闻
台湾新闻
互联网
军事-新浪博客
IT-新浪博客
汽车新闻
游戏新闻
国际新闻
国内新闻
体育新闻
我的微博
北京 上海 杭州 深圳 广州 成都