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 解析读取XML文档 实例代码
Jul 07 Javascript
ExtJS Window 最小化的一种方法
Nov 18 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
Apr 14 Javascript
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
Mar 01 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
Dec 10 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
Jan 24 Javascript
Angularjs基础知识及示例汇总
Jan 22 Javascript
JavaScript绑定事件监听函数的通用方法
May 14 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
Jun 01 Javascript
Jquery根据浏览器窗口改变调整大小的方法
Feb 07 Javascript
vue语法之拼接字符串的示例代码
Oct 25 Javascript
Vue按时间段查询数据组件使用详解
Aug 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实时显示输出
2008/10/02 PHP
php数组转成json格式的方法
2015/03/09 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
jQuery消息提示框插件Tipso
2015/05/04 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
python多进程操作实例
2014/11/21 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
Python timeit模块的使用实践
2020/01/13 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
有机童装:Toby Tiger
2018/05/23 全球购物
西班牙多品牌鞋店连锁店:Krack
2018/11/30 全球购物
销售人员个人求职信
2013/09/26 职场文书
医药工作岗位求职信分享
2013/12/31 职场文书
教师自我反思材料
2014/02/14 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
统计专业自荐书
2014/07/06 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
会计求职自荐信
2015/03/26 职场文书
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android