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中的对象化编程
Jan 16 Javascript
用dtree实现树形菜单 dtree使用说明
Oct 17 Javascript
jQuery中操控hidden、disable等无值属性的方法
Jan 06 Javascript
JavaScript中使用Math.PI圆周率属性的方法
Jun 14 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
Oct 12 Javascript
理解Javascript的call、apply
Dec 16 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
Oct 10 Javascript
webpack之devtool详解
Feb 10 Javascript
详解小程序rich-text对富文本支持方案
Nov 28 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
May 01 Javascript
原生JS与CSS实现软件卸载对话框功能
Dec 05 Javascript
node.js 微信开发之定时获取access_token
Feb 07 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
一个查看session内容的函数
2006/10/09 PHP
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
BootStrap表单控件之复选框checkbox和单选择按钮radio
2017/05/23 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
javascript流程控制语句集合
2017/09/18 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
使用javascript做在线算法编程
2018/05/25 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
python进行文件对比的方法
2018/12/24 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
python安装sklearn模块的方法详解
2020/11/28 Python
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
商务英语专业自荐信
2013/10/14 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
公司应聘自荐书
2014/06/14 职场文书
失职检讨书大全
2015/01/26 职场文书
2015年店长个人工作总结
2015/10/23 职场文书