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 相关文章推荐
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
May 14 Javascript
使用JavaScript switch case 另类写法
Mar 14 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
Dec 03 Javascript
javascript实现dom元素可拖动
Mar 21 Javascript
详解AngularJS中ng-src指令的使用
Sep 07 Javascript
微信小程序 教程之数据绑定
Oct 18 Javascript
node安装--linux下的快速安装教程
Mar 21 Javascript
BootStrap的双日历时间控件使用
Jul 25 Javascript
angularjs 缓存的使用详解
Mar 19 Javascript
在angular 6中使用 less 的实例代码
May 13 Javascript
vue单页面在微信下只能分享落地页的解决方案
Apr 15 Javascript
vue实现弹幕功能
Oct 25 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
基于文本的搜索
2006/10/09 PHP
php框架Phpbean说明
2008/01/10 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
PHP中的函数-- foreach()的用法详解
2013/06/24 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
JSON JQUERY模板实现说明
2010/07/03 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
javascript中的3种继承实现方法
2016/01/27 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
Python单链表的简单实现方法
2014/09/23 Python
python实现简单购物商城
2016/05/21 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
2016/09/21 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
对Python信号处理模块signal详解
2019/01/09 Python
解决python线程卡死的问题
2019/02/18 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
简短的公司员工自我评价分享
2013/11/13 职场文书
英文推荐信格式范文
2014/05/09 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
实习计划书范文
2015/01/16 职场文书
运动会新闻稿
2015/07/17 职场文书
高中物理教学反思
2016/02/19 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
全面盘点MySQL中的那些重要日志文件
2021/11/27 MySQL
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫