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 相关文章推荐
Ext javascript建立超链接,进行事件处理的实现方法
Mar 22 Javascript
js验证是否为数字的总结
Apr 14 Javascript
JS循环遍历JSON数据的方法
Jul 08 Javascript
jquery实现平滑的二级下拉菜单效果
Aug 26 Javascript
js运动应用实例解析
Dec 28 Javascript
使用jQuery处理AJAX请求的基础学习教程
May 10 Javascript
js获取新浪天气接口的实现代码
Jun 06 Javascript
解决Window10系统下Node安装报错的问题分析
Dec 13 Javascript
老生常谈Bootstrap媒体对象
Jul 06 Javascript
在 Node.js 中使用 async 函数的方法
Nov 17 Javascript
vue2.x数组劫持原理的实现
Apr 19 Javascript
JS字符串和数组如何实现相互转化
Jul 02 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
一个查看session内容的函数
2006/10/09 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
js的2种继承方式详解
2014/03/04 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
2016/06/15 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
python基于右递归解决八皇后问题的方法
2015/05/25 Python
Python实现建立SSH连接的方法
2015/06/03 Python
python删除文本中行数标签的方法
2018/05/31 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python库matplotlib绘制坐标图
2019/10/18 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
应届生人事助理求职信
2013/11/09 职场文书
党校培训自我鉴定
2014/02/01 职场文书
高校优秀辅导员事迹材料
2014/05/07 职场文书
公路绿化方案
2014/05/12 职场文书
中华魂演讲稿
2014/05/13 职场文书
大学生违纪检讨书300字
2014/10/25 职场文书
《金钱的魔力》教学反思
2016/02/20 职场文书
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android
Rust中的Struct使用示例详解
2022/08/14 Javascript