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 相关文章推荐
json简单介绍
Jun 10 Javascript
JavaScript中的函数嵌套使用
Jun 04 Javascript
JavaScript 函数的执行过程
May 09 Javascript
vue在使用ECharts时的异步更新和数据加载详解
Nov 22 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
Apr 03 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
Sep 19 Javascript
Vuex的actions属性的具体使用
Apr 14 Javascript
一文了解vue-router之hash模式和history模式
May 31 Javascript
Vue监听页面刷新和关闭功能
Jun 20 Javascript
简单了解小程序+node梳理登陆流程
Jun 24 Javascript
简单了解JavaScript作用域
Jul 31 Javascript
ECharts transform数据转换和dataZoom在项目中使用
Dec 24 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
PHP获取文件相对路径的方法
2015/02/26 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
常用的JQuery函数及功能小结
2016/03/24 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
对python中list的五种查找方法说明
2020/07/13 Python
东方红海科技面试题软件测试方面
2012/02/08 面试题
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
最新的互联网创业计划书
2014/01/10 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
平安建设工作方案
2014/06/02 职场文书
学校师德师风整改措施
2014/10/27 职场文书
云冈石窟导游词
2015/02/04 职场文书
老公保证书怎么写
2015/02/26 职场文书
听证会主持词
2015/07/03 职场文书