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(jquery)利用函数修改全局变量的代码
Nov 02 Javascript
用js写了一个类似php的print_r输出换行功能
Feb 18 Javascript
JS获取Table中td值的方法
Mar 19 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
Sep 23 Javascript
Angularjs 动态改变title标题(兼容ios)
Dec 29 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
Feb 27 Javascript
JavaScript自定义文本框光标
Mar 05 Javascript
AngularJS 中的数据源的循环输出
Oct 12 Javascript
基于JavaScript中标识符的命名规则介绍
Jan 06 Javascript
vue自定义一个v-model的实现代码
Jun 21 Javascript
vue权限问题的完美解决方案
May 08 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
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
Sample script that deletes a SQL Server database
2007/06/16 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
深入浅析Node.js单线程模型
2017/07/10 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
Python生成验证码实例
2014/08/21 Python
Python实现一个简单的MySQL类
2015/01/07 Python
Python实现二叉堆
2016/02/03 Python
Python引用模块和查找模块路径
2016/03/17 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
pandas中ix的使用详细讲解
2020/03/09 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
生产部厂长助理职位说明书
2014/03/03 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书