URL的参数中有加号传值变为空格的问题(URL特殊字符)


Posted in Javascript onNovember 04, 2016

1.URL特殊字符需转义
2.空格换成加号(+)  
3.正斜杠(/)分隔目录和子目录  
4.问号(?)分隔URL和查询  
5.百分号(%)制定特殊字符  
6.#号指定书签  
7.&号分隔参数  

转义字符的原因:

如果你的表单使用get方法提交,并且提交的参数中有“&”等特殊符的话,如果不做处理,在service端就会将&后面的作为另外一个参数来看待。例如
表单的action为list.jsf?act=Go&state=5
则提交时通过request.getParameter可以分别取得act和state的值。
如果你的本意是act='go&state=5'这个字符串,那么为了在服务端拿到act的准确值,你必须对&进行转义

url转义字符原理:

将这些特殊的字符转换成ASCII码,格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。
 
1.URL特殊符号及对应的十六进制值编码:  
2.
3.+  URL 中+号表示空格 %2B  
4.空格 URL中的空格可以用+号或者编码 %20  
5./ 分隔目录和子目录 %2F   
6.? 分隔实际的 URL 和参数 %3F   
7.% 指定特殊字符 %25   
8.# 表示书签 %23   
9.& URL 中指定的参数间的分隔符 %26   
10.= URL 中指定参数的值 %3D 

解决方法如下(以+号为例):

方法一、修改客户端,将客户端带“+”的参数中的“+”全部替换为?“%2B”,这样参数传到服务器端时就能得到“+”了。
方法二、修改服务器端,将空格替换为“+”,这种方式只适用于参数中有?“+”没有空格的情况。

例子:

String a = reuqest.getParameter("clientStr").replace(' ','+');

如果客户端为clientStr=test+OK,那么a的值为test+OK;

方法三、修改服务器端,将获取参数的方法由?reuqest.getParameter改为?request.getQueryString().substring(0),然后对得到的字符串进行解析。

例子:

String a =request.getQueryString().substring(0);

如果客户端为clientStr=test+OK,那么a的值为?clientStr=test+OK,需要再解析一下,

a=a.?substring(10);得到a的值为?test+OK。

附:一个JS,用来转义URL中特殊字符的。

function URLencode(sStr) {   
return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F'); 
}

如果你是用replace()时,使用name.replaceAll("\\ ","%20");

st_fname=name.replaceAll("\\ ","%20"); st_fname=dst_fname.replaceAll("\\+","%2B");

本人的解决方法:

js代码

function rStr(str){
str=str.replace(/\+/g,"%2B");
return str;
}

function SelectArcListA(fname){
 var posLeft = 10;
 var posTop = 10;
 window.open("content_select_list.asp?f="+fname+"&k="+escape(rStr(form1.tag.value)), "selArcList", "scrollbars=yes,resizable=yes,statebar=no,width=700,height=500,left="+posLeft+", top="+posTop);
}

asp端替换代码

keyword=replace(keyword,"%2B","+")

完美解决问题。

Javascript 相关文章推荐
javascript之解决IE下不渲染的bug
Jun 29 Javascript
学习ExtJS fit布局使用说明
Oct 08 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
Jul 09 Javascript
如何使用Jquery获取Form表单中被选中的radio值
Aug 09 Javascript
3种不同方式的焦点图轮播特效分享
Oct 30 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
Dec 04 Javascript
BootStrap modal模态弹窗使用小结
Oct 26 Javascript
jQuery密码强度验证控件使用详解
Jan 05 Javascript
vue实现消息的无缝滚动效果的示例代码
Dec 05 Javascript
vue中el-upload上传图片到七牛的示例代码
Oct 19 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
Jun 17 Javascript
Vue-cli项目部署到Nginx服务器的方法
Nov 01 Javascript
Angular页面间切换及传值的4种方法
Nov 04 #Javascript
AngularJS实现根据变量改变动态加载模板的方法
Nov 04 #Javascript
RGB和YUV 多媒体编程基础详细介绍
Nov 04 #Javascript
javascript设置文本框光标的方法实例小结
Nov 04 #Javascript
使用Curl命令查看请求响应时间方法
Nov 04 #Javascript
JS创建对象的写法示例
Nov 04 #Javascript
微信公众号支付H5调用支付解析
Nov 04 #Javascript
You might like
PHP 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
2015/12/22 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
python超时重新请求解决方案
2019/10/21 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
Python tornado上传文件的功能
2020/03/26 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
Python连接mysql方法及常用参数
2020/09/01 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
Python 图片处理库exifread详解
2021/02/25 Python
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
高考自主招生自荐信
2013/10/20 职场文书
中学生评语大全
2014/04/18 职场文书
师范生求职信
2014/06/14 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
新郎接新娘保证书
2015/05/08 职场文书
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏
MySQL 条件查询的常用操作
2022/04/28 MySQL