url 特殊字符 传递参数解决方法


Posted in Javascript onJanuary 01, 2010

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

解决的方法:
replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符.
而str.replace(/\-/g,"!")则可以替换掉全部匹配的字符(g为全局标志)。
replace()
js中替换字符变量如下:

 data2=data2.replace(/\%/g,"%25");
 data2=data2.replace(/\#/g,"%23");
 data2=data2.replace(/\&/g,"%26");

其他一些资料。。。仅供参考。。。

在使用url进行参数传递时,经常会传递一些中文名(或含有特殊字符)的参数或URL地址,在后台处理时会发生转换错误。在有些传递页面使用GB2312,而在接收页面使用UTF8,这样接收到的参数就可能会与原来发生不一致。使用服务器端的urlEncode函数编码的URL,与使用客户端java的encodeURI函数编码的URL,结果就不一样。

java对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

java中的编码方法:
escape() 方法:采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。不会被此方法编码的字符: @ * / +

encodeURI()方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '

encodeURIComponent ()方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( )

因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用 escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者 encodeURIComponent。

另外,encodeURI/encodeURIComponent是在java1.5之后引进的,escape则在java1.0版本就有。
1、  传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

   例如:< language="java">write('<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</>

2、  进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

3、  js使用数据时可以使用escape

例如:搜藏中history纪录。

4、  escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.

Javascript 相关文章推荐
初识javascript 文档碎片
Jul 13 Javascript
JavaScript利用append添加元素报错的解决方法
Jul 01 Javascript
JQuery解析XML的方法小结
Apr 02 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
May 25 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
Jun 25 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
JavaScript实现快速排序的方法分析
Jan 10 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
May 06 Javascript
微信小程序自定义toast弹窗效果的实现代码
Nov 15 Javascript
详解Vue中watch的详细用法
Nov 28 Javascript
JS控制下拉列表左右选择实例代码
May 08 Javascript
JS封装cavans多种滤镜组件
Feb 15 Javascript
JavaScript 数组循环引起的思考
Jan 01 #Javascript
javascript eval和JSON之间的联系
Dec 31 #Javascript
js下用gb2312编码解码实现方法
Dec 31 #Javascript
JavaScript 学习笔记(七)字符串的连接
Dec 31 #Javascript
JavaScript 学习笔记(六)
Dec 31 #Javascript
JavaScript 学习笔记(五)
Dec 31 #Javascript
JavaScript 学习笔记(四)
Dec 31 #Javascript
You might like
让你的PHP同时支持GIF、png、JPEG
2006/10/09 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
php 正则匹配函数体
2009/08/25 PHP
PHP 数据结构 算法 三元组 Triplet
2011/07/02 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
巧用canvas
2017/01/21 Javascript
手机端转换rem适应
2017/04/01 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
vue filters的使用详解
2018/06/11 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
pygame实现弹力球及其变速效果
2017/07/03 Python
python交换两个变量的值方法
2019/01/12 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
python pandas 时间日期的处理实现
2019/07/30 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
车间副主任岗位职责
2013/12/24 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
2016年寒假生活小结
2015/10/10 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书