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 相关文章推荐
javascript 动态table添加colspan\rowspan 参数的方法
Jul 25 Javascript
20行代码实现的一个CSS覆盖率测试脚本
Jul 07 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
May 04 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
Oct 10 Javascript
AngularJS 自定义过滤器详解及实例代码
Sep 14 Javascript
清除js缓存的多种方法总结
Dec 09 Javascript
jQuery EasyUi 验证功能实例解析
Jan 06 Javascript
Node.js连接mongodb实例代码
Jun 06 Javascript
浅析node.js的模块加载机制
May 25 Javascript
记录一篇关于redux-saga的基本使用过程
Aug 18 Javascript
RxJS的入门指引和初步应用
Jun 15 Javascript
JavaScript中callee和caller的区别与用法实例分析
Jun 28 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
基于PHP array数组的教程详解
2013/06/05 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
IE8提示Invalid procedure call or argument 异常的解决方法
2012/09/30 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
python字符类型的一些方法小结
2016/05/16 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
python多行字符串拼接使用小括号的方法
2020/03/19 Python
python opencv实现旋转矩形框裁减功能
2018/07/25 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
Python生成词云的实现代码
2020/01/14 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
解决Django no such table: django_session的问题
2020/04/07 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
css3 border-radius属性详解
2017/07/05 HTML / CSS
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
幼儿园新学期寄语
2014/01/18 职场文书
初三学习计划书范文
2014/04/30 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
小学语文新课改心得体会
2016/01/22 职场文书