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获取/更改文本框的值的实例代码
Aug 02 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
May 08 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
基于jquery的手风琴图片展示效果实现方法
Dec 16 Javascript
js实现鼠标划过给div加透明度的方法
May 25 Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 Javascript
jQuery Ajax 全局调用封装实例代码详解
Jun 02 Javascript
实例详解jQuery的无new构建
Aug 02 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
Jun 13 Javascript
Vue的Class与Style绑定的方法
Sep 01 Javascript
JavaScript使用Math.random()生成简单的验证码
Jan 21 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基础教程 php内置函数实例教程
2012/08/21 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
jQuery中mouseover事件用法实例
2014/12/26 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
使用requests库制作Python爬虫
2018/03/25 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
解决django FileFIELD的编码问题
2020/03/30 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
介绍一下XMLHttpRequest对象
2012/02/12 面试题
中级会计职业生涯规划书
2014/03/01 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
2015年采购工作总结
2015/04/10 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
golang使用map实现去除重复数组
2022/04/14 Golang