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 CSS修改学习第五章 给“上传”添加样式
Feb 19 Javascript
JavaScript中的类与实例实现方法
Jan 23 Javascript
js中javascript:void(0) 真正含义
Nov 05 Javascript
jquery淡入淡出效果简单实例
Jan 14 Javascript
JS随机打乱数组的方法小结
Jun 22 Javascript
js实现按座位号抽奖
Apr 05 Javascript
jquery加载单文件vue组件的方法
Jun 20 jQuery
详解在vue-cli中使用路由
Sep 25 Javascript
微信小程序实现折叠面板
Jan 31 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
Mar 06 Javascript
webpack手动配置React开发环境的步骤
Jul 02 Javascript
微信小程序图片加载失败时替换为默认图片的方法
Dec 09 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 生成WML页面方法详解
2009/08/09 PHP
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
Python使用sorted对字典的key或value排序
2018/11/15 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
用canvas显示验证码的实现
2020/04/10 HTML / CSS
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
大专计算机个人求职的自我评价
2013/10/21 职场文书
心理学专业毕业生推荐信范文
2013/11/21 职场文书
爱我中华教学反思
2014/04/28 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
高中学生自我评价范文
2014/09/23 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书