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 相关文章推荐
js中opener与parent的区别详细解析
Jan 14 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
node.js中的fs.open方法使用说明
Dec 17 Javascript
JavaScript数组常用方法
Mar 02 Javascript
jquery validate demo 基础
Oct 29 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
Jan 18 Javascript
js实现背景图自适应窗口大小
Jan 10 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
Apr 23 jQuery
vue-cli2与vue-cli3在一台电脑共存的实现方法
Sep 25 Javascript
webpack安装配置与常见使用过程详解(结合vue)
Jun 01 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程序
2006/10/09 PHP
PHP精确计算功能示例
2016/11/29 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
js实现iframe动态调整高度的代码
2008/01/06 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
python实现的简单窗口倒计时界面实例
2015/05/05 Python
Python中处理字符串之isalpha()方法的使用
2015/05/18 Python
使用python实现接口的方法
2017/07/07 Python
python 系统调用的实例详解
2017/07/11 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
2017/11/08 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
python实现飞机大战小游戏
2019/11/08 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
函数指针的定义是什么
2016/08/14 面试题
自我评价正确写法范文
2013/12/10 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
售房协议书范本2014
2014/10/23 职场文书
2015年资料员工作总结
2015/04/25 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis
源码安装apache脚本部署过程详解
2022/09/23 Servers