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 相关文章推荐
DOMAssitant最新版 DOMAssistant 2.5发布
Dec 25 Javascript
jquery自定义表格样式
Nov 23 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
May 30 Javascript
jQuery插件ajaxFileUpload异步上传文件
Oct 19 Javascript
layui分页效果实现代码
May 19 Javascript
动态Axios的配置步骤详解
Jan 12 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
Mar 20 Javascript
React实现全局组件的Toast轻提示效果
Sep 21 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
Sep 21 Javascript
JavaScript实现公告栏上下滚动效果
Mar 13 Javascript
uniapp实现可滑动选项卡
Oct 21 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
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
php eval函数一句话木马代码
2015/05/21 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
JSON取值前判断
2014/12/23 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
JS动画效果打开、关闭层的实现方法
2015/05/09 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
javascript合并表格单元格实例代码
2016/01/03 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
小程序实现分类页
2019/07/12 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
python中ConfigParse模块的用法
2014/09/29 Python
python 阶乘累加和的实例
2019/02/01 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
运动会广播稿60字
2014/01/15 职场文书
班组安全员工作职责
2014/02/01 职场文书
商超业务员岗位职责
2014/03/12 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
《学会合作》教学反思
2014/04/12 职场文书
促销活动总结范文
2014/04/30 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
中学教代会开幕词
2016/03/04 职场文书