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学习笔记-详解in运算符
Sep 13 Javascript
一个CSS+jQuery实现的放大缩小动画效果
Feb 19 Javascript
jquery模拟LCD 时钟的html文件源代码
Jun 16 Javascript
jquery实现保存已选用户
Jul 21 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
Nov 01 Javascript
JS简单随机数生成方法
Sep 05 Javascript
javascript跨域请求包装函数与用法示例
Nov 03 Javascript
5 种JavaScript编码规范
Jan 30 Javascript
webpack4之SplitChunksPlugin使用指南
Jun 12 Javascript
手动下载Chrome并解决puppeteer无法使用问题
Nov 12 Javascript
jQuery插件实现图片轮播效果
Oct 19 jQuery
原生js实现滑块区间组件
Jan 20 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设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
Javascript实现鼠标框选操作  不是点击选取
2016/04/14 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
详解Python中的四种队列
2018/05/21 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
python中p-value的实现方式
2019/12/16 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
Html5新标签解释及用法
2012/02/17 HTML / CSS
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
德国PC硬件网站:CASEKING
2016/10/20 全球购物
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
运动会闭幕词
2015/01/28 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
2019入党申请书格式
2019/06/25 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS
Python图像处理库PIL详细使用说明
2022/04/06 Python