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 捕获窗口关闭事件
Jul 26 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
Mar 21 Javascript
Javascript 类型转换方法
Oct 24 Javascript
推荐6款基于jQuery实现图片效果插件
Dec 07 Javascript
JS实现3D图片旋转展示效果代码
Sep 22 Javascript
Prototype框架详解
Nov 25 Javascript
JS如何判断json是否为空
Jul 06 Javascript
jQuery按需加载轮播图(web前端性能优化)
Feb 17 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
Apr 07 Javascript
JavaScript模块管理的简单实现方式详解
Jun 15 Javascript
cypress测试本地web应用
Jun 01 Javascript
JavaScript架构搭建前端监控如何采集异常数据
Jun 25 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下目前为目最全的CURL中文说明
2010/08/01 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
JavaScript中的私有成员
2006/09/18 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
js检测iframe是否加载完成的方法
2015/11/26 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
React Form组件的实现封装杂谈
2018/05/07 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
京东优选小程序的实现代码示例
2020/02/25 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
极简的Python入门指引
2015/04/01 Python
python删除某个字符
2018/03/19 Python
python matlibplot绘制3D图形
2018/07/02 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
python 从list中随机取值的方法
2020/11/16 Python
HTML5移动开发图片压缩上传功能
2016/11/09 HTML / CSS
ktv中秋节活动方案
2014/01/30 职场文书
人事部岗位职责范本
2014/03/05 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
结对共建工作方案
2014/06/02 职场文书
2015年保险公司工作总结
2015/04/24 职场文书