js编码、解码函数介绍及其使用示例


Posted in Javascript onSeptember 05, 2013

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1、传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。
例如:
<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7& u='+encodeURIComponent
("http://cang.baidu.com/bruce42")+'">退出</a& gt;');</script>

2、进行url跳转时可以整体使用encodeURI
例如: Location.href=encodeURI(http://cang.baidu.com/do/s?word=中国&ct=21);
使用这个方法编码的字符在PHP中可以使用urldecode()函数反编码

3、js使用数据时可以使用escape
escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

附上这个三个函数的介绍:

escape 方法
对 String 对象编码以便它们能在所有计算机上可读,
escape(charString)
必选项 charstring 参数是要编码的任意 String 对象或文字。
说明
escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,
其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。
字符值大于 255 的以 %uxxxx 格式存储。
注意 escape 方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURI 和encodeURIComponent 方法。

encodeURI 方法
将文本字符串编码为一个有效的统一资源标识符 (URI)。
encodeURI(URIString)
必选的 URIString 参数代表一个已编码的 URI。
说明
encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:":"、
"/"、";" 和 "?"。请使用 encodeURIComponent 方法对这些字符进行编码。

encodeURIComponent 方法
将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。
encodeURIComponent(encodedURIString)
必选的 encodedURIString 参数代表一个已编码的 URI 组件。

说明
encodeURIComponent 方法返回一个已编码的 URI。如果您将编码结果传递给 decodeURIComponent,那么将返回初始的字符串。因为 encodeURIComponent
方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结
果被作为请求发送到 web 服务器时将是无效的。如果字符串中包含不止一个 URI 组件,请使用 encodeURI 方法进行编码。

Javascript 相关文章推荐
jQuery动态设置form表单的enctype值(实现代码)
Jul 04 Javascript
javascript常用方法总结
May 14 Javascript
JavaScript实现带标题的图片轮播特效
May 20 Javascript
JavaScript编程学习技巧汇总
Feb 21 Javascript
AngularJS 简单应用实例
Jul 28 Javascript
AngularJS中watch监听用法分析
Nov 04 Javascript
vue2.0 datepicker使用方法
Feb 04 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
Jul 05 Javascript
js中null与空字符串&quot;&quot;的区别讲解
Jan 17 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
Jun 05 Javascript
JavaScript实现滑块验证解锁
Jan 07 Javascript
基于JavaScript实现省市联动效果
Jun 22 Javascript
Jquery中给animation加更多的运作效果实例
Sep 05 #Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
Sep 05 #Javascript
jQuery关于导航条背景切换效果实现示例
Sep 04 #Javascript
JS控制阿拉伯数字转为中文大写示例代码
Sep 04 #Javascript
JS如何将UTC格式时间转本地格式
Sep 04 #Javascript
js 窗口抖动示例
Sep 04 #Javascript
js格式化货币数据实现代码
Sep 04 #Javascript
You might like
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
点击文章内容处弹出页面代码
2009/10/01 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
2015/11/04 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
JS+html5制作简单音乐播放器
2020/09/13 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
Python中return语句用法实例分析
2015/08/04 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
Python实现打印实心和空心菱形
2019/11/23 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
Django数据库操作之save与update的使用
2020/04/01 Python
应聘面试自我评价
2014/01/24 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
社区服务标语
2014/07/01 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书
在python中实现导入一个需要传参的模块
2021/05/12 Python
Redis三种集群模式详解
2021/10/05 Redis