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 相关文章推荐
js中的window.open返回object的错误的解决方法
Aug 15 Javascript
javascript的渐进增强与平稳退化浅谈
Nov 12 Javascript
详解JavaScript对象和数组
Dec 03 Javascript
详解AngularJS Filter(过滤器)用法
Dec 28 Javascript
Angular之指令Directive用法详解
Mar 01 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
Mar 03 Javascript
Vue.directive自定义指令的使用详解
Mar 10 Javascript
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
js 客户端打印html 并且去掉页眉、页脚的实例
Nov 03 Javascript
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
react实现移动端下拉菜单的示例代码
Jan 16 Javascript
JavaScript接口实现方法实例分析
May 16 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
PHP图片上传代码
2013/11/04 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
js单例模式详解实例
2013/11/21 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
js实现抽奖效果
2017/03/27 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
Python多线程学习资料
2012/12/19 Python
在Python下尝试多线程编程
2015/04/28 Python
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
解决Django模板无法使用perms变量问题的方法
2017/09/10 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
Python拼接字符串的7种方法总结
2018/11/01 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
python中bytes和str类型的区别
2019/10/21 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
英文简历中的自我评价用语
2013/12/09 职场文书
关于做家务的心得体会
2016/01/23 职场文书
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android