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 相关文章推荐
JavaScript 的方法重载效果
Aug 07 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
Mar 11 Javascript
jQuery中outerHeight()方法用法实例
Jan 19 Javascript
浅谈document.write()输出样式
May 07 Javascript
深入理解JavaScript中的对象
Jun 04 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
Jun 08 Javascript
localStorage的黑科技-js和css缓存机制
Feb 06 Javascript
ES6下React组件的写法示例代码
May 04 Javascript
Vue服务器渲染Nuxt学习笔记
Jan 31 Javascript
JS函数节流和防抖之间的区分和实现详解
Jan 11 Javascript
微信小程序时间轴实现方法示例
Jan 14 Javascript
jQuery实现动态添加和删除input框代码实例
Mar 29 jQuery
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将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
php基础教程
2015/08/26 PHP
php实现文章评论系统
2019/02/18 PHP
javascript 进度条 实现代码
2009/07/30 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
python实现接口并发测试脚本
2019/06/25 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
如何使用python代码操作git代码
2020/02/29 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
Python如何实现机器人聊天
2020/09/10 Python
附答案的Java面试题
2012/11/19 面试题
高中生的自我鉴定范文
2014/01/24 职场文书
大学生作弊检讨书
2014/02/19 职场文书
奥利奥广告词
2014/03/20 职场文书
会计学习心得体会
2014/09/09 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
三峡人家导游词
2015/01/31 职场文书
导游词欢迎词
2015/02/02 职场文书
装修公司管理制度
2015/08/05 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang
世界十大狙击步枪排行榜
2022/03/20 杂记
Linux中文件的基本属性介绍
2022/06/01 Servers