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 相关文章推荐
B/S开发中常用javaScript技术与代码
Mar 09 Javascript
一段利用WSH获取登录时间的jscript代码
May 11 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
Jul 01 Javascript
屏蔽相应键盘按钮操作
Mar 10 Javascript
JS实现控制表格行内容垂直对齐的方法
Mar 30 Javascript
javascript类型系统 Array对象学习笔记
Jan 09 Javascript
JavaScript是如何实现继承的(六种方式)
Mar 31 Javascript
Select下拉框模糊查询功能实现代码
Jul 22 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
Sep 26 Javascript
vue移动端下拉刷新和上拉加载的实现代码
Sep 08 Javascript
JavaScript遍历DOM元素的常见方式示例
Feb 16 Javascript
react MPA 多页配置详解
Oct 18 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
极典R601SW收音机
2021/03/02 无线电
PHP MVC框架路由学习笔记
2016/03/02 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
js获取当前select 元素值的代码
2010/04/19 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
JavaScript 原型链学习总结
2010/10/29 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
2019/09/05 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
linux下安装easy_install的方法
2013/02/10 Python
一个简单的python程序实例(通讯录)
2013/11/29 Python
Python列表生成器的循环技巧分享
2015/03/06 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
应届生自荐信范文
2014/02/21 职场文书
迎新生晚会主持词
2015/06/30 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书
浅谈Python魔法方法
2021/06/28 Java/Android
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis