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 相关文章推荐
jQuery+css+html实现页面遮罩弹出框
Mar 21 Javascript
js中return false(阻止)的用法
Aug 14 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
Mar 31 Javascript
jquery表单验证需要做些什么
Nov 17 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
Jul 07 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
Mar 21 Javascript
Vue.js实现可排序的表格组件功能示例
Feb 19 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
Oct 16 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
Nov 25 Javascript
纯JS开发baguetteBox.js响应式画廊插件
Jun 28 Javascript
解决vue初始化项目一直停在downloading template的问题
Nov 09 Javascript
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
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 页面编码声明方法详解(header或meta)
2010/03/12 PHP
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
php模板原理讲解
2013/11/13 PHP
PHP实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
Javascript 面向对象特性
2009/12/28 Javascript
Javascript的构造函数和constructor属性
2010/01/09 Javascript
基于jquery 的一个progressbar widge
2010/10/29 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
JavaScript实现音乐导航效果
2020/11/19 Javascript
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
Python 如何在字符串中插入变量
2020/08/01 Python
vscode+PyQt5安装详解步骤
2020/08/12 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
HTML5标签小集
2011/08/02 HTML / CSS
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
广告设计专业自荐信范文
2013/11/14 职场文书
个人简历中自我评价
2014/02/11 职场文书
高中教师评语大全
2014/04/25 职场文书
党员进社区活动总结
2015/05/07 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python