Javascript中的几种URL编码方法比较


Posted in Javascript onJanuary 23, 2015

javascript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。这几种编码所起的作用各不相同。

escape() 方法:

    采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。

不会被此方法编码的字符: @ * / +

encodeURI() 方法:

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。

不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '

encodeURIComponent() 方法:

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

不会被此方法编码的字符:! * ( ) '

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

另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。

Javascript 相关文章推荐
FireFox JavaScript全局Event对象
Jun 14 Javascript
jQuery ui 1.7更新小结
Aug 15 Javascript
利用jQuery的$.event.fix函数统一浏览器event事件处理
Dec 21 Javascript
javascript天然的迭代器
Oct 29 Javascript
再论Javascript的类继承
Mar 05 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
Aug 23 Javascript
ECMAScript6--解构
Mar 30 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
May 03 Javascript
详解Angular路由 ng-route和ui-router的区别
May 22 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
Feb 13 Javascript
原生js实现密码强度验证功能
Mar 18 Javascript
js实现验证码干扰(静态)
Feb 22 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
Jan 23 #Javascript
AngularJS语法详解(续)
Jan 23 #Javascript
Jquery动态替换div内容及动态展示的方法
Jan 23 #Javascript
AngularJS语法详解
Jan 23 #Javascript
JQuery选择器绑定事件及修改内容的方法
Jan 23 #Javascript
angular中使用路由和$location切换视图
Jan 23 #Javascript
JavaScript中的类与实例实现方法
Jan 23 #Javascript
You might like
ASP和PHP都是可以删除自身的
2007/04/09 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
jquery中each遍历对象和数组示例
2014/08/05 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
2015/08/11 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
深入了解query和params的使用区别
2019/06/24 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
Python随机数函数代码实例解析
2020/02/09 Python
python如何建立全零数组
2020/07/19 Python
Python 列表反转显示的四种方法
2020/11/16 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
中餐厅主管的职责范文
2014/02/04 职场文书
大学生创业项目方案
2014/03/08 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
周年庆典主持词
2014/04/02 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
党员检讨书
2014/10/13 职场文书
2014年党小组工作总结
2014/12/20 职场文书
怎样写辞职信
2015/02/27 职场文书
JavaCV实现照片马赛克效果
2022/01/22 Java/Android