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切换显示的效果实例代码
Feb 27 Javascript
js中方法重载如何实现?以及函数的参数问题
Aug 01 Javascript
JavaScript四种调用模式和this示例介绍
Jan 02 Javascript
JavaScript静态类型检查工具FLOW简介
Jan 06 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
Mar 21 Javascript
JS组件Bootstrap导航条使用方法详解
Apr 29 Javascript
JS实现回到页面顶部动画效果的简单实例
May 24 Javascript
js动态添加的DIV中的onclick事件简单实例
Jul 25 Javascript
JS 实现banner图片轮播效果(鼠标事件)
Aug 04 Javascript
浅析Vue 生命周期
Jun 21 Javascript
express框架中使用jwt实现验证的方法
Aug 25 Javascript
解决在Vue中使用axios用form表单出现的问题
Oct 30 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 print类函数使用总结
2010/06/25 PHP
浅谈php命令行用法
2015/02/04 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
Javascript实现的分页函数
2006/12/22 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
python 判断一个进程是否存在
2009/04/09 Python
Python简单计算文件夹大小的方法
2015/07/14 Python
Python实现简单http服务器
2018/04/12 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
python 并发下载器实现方法示例
2019/11/22 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
Python读取xlsx数据生成图标代码实例
2020/08/12 Python
介绍一下except的用法和作用
2015/01/22 面试题
高中军训感言800字
2014/03/05 职场文书
《长相思》听课反思
2014/04/10 职场文书
党员活动日总结
2014/05/05 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
小学教师教育随笔
2015/08/14 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
《称赞》教学反思
2016/02/17 职场文书
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS