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 相关文章推荐
用js实现控制内容的向上向下滚动效果
Jun 26 Javascript
30分钟就入门的正则表达式基础教程
Feb 25 Javascript
JavaScript获取onclick、onchange等事件值的代码
Jul 22 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
Dec 14 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
Dec 29 Javascript
jQuery中:focus选择器用法实例
Dec 30 Javascript
js插件YprogressBar实现漂亮的进度条效果
Apr 20 Javascript
Bootstrap笔记—折叠实例代码
Mar 13 Javascript
BootStrap模态框不垂直居中的解决方法
Oct 19 Javascript
node 使用 async 控制并发的方法
May 07 Javascript
vue二级菜单导航点击选中事件的方法
Sep 12 Javascript
微信小程序实现转盘抽奖
Sep 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
德生S2000收音机更换“钕铁硼”全频扬声器
2021/03/02 无线电
php中cookie的作用域
2008/03/27 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
javascript下数值型比较难点说明
2010/06/07 Javascript
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
JsRender for object语法简介
2014/10/31 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
2016/07/22 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
python asyncio 协程库的使用
2021/01/21 Python
Python中Qslider控件实操详解
2021/02/20 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
JSF界面控制层技术
2013/06/17 面试题
运动会获奖感言
2014/02/11 职场文书
不错的求职信范文
2014/07/20 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
优秀教师事迹材料
2014/12/15 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis