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 相关文章推荐
使用insertAfter()方法在现有元素后添加一个新元素
May 28 Javascript
JavaScript的arguments对象应用示例
Sep 15 Javascript
JQuery用户名校验的具体实现
Mar 18 Javascript
JavaScript中的对象和原型(一)
Aug 12 Javascript
jquery easyui validatebox remote的使用详解
Nov 09 Javascript
angular2 ng2 @input和@output理解及示例
Oct 10 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
Mar 09 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
Jun 04 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
Jul 19 Javascript
es6 super关键字的理解与应用实例分析
Feb 15 Javascript
js编写简易的计算器
Jul 29 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
Oct 18 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函数常用用法小结
2010/02/08 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
js CSS操作方法集合
2008/10/31 Javascript
toString()一个会自动调用的方法
2010/02/08 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
Node.js系列之安装配置与基本使用(1)
2019/08/30 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
浅析Python编写函数装饰器
2016/03/18 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
高中生操行评语大全
2014/04/25 职场文书
初中生物教学反思
2016/02/20 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python