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示例收集
Nov 05 Javascript
新鲜出炉的js tips提示效果
Apr 03 Javascript
jquery如何扑捉回车键触发的事件
Apr 24 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
Dec 21 Javascript
JS中的作用域链
Mar 01 Javascript
AngularJS前端页面操作之用户修改密码功能示例
Mar 27 Javascript
vue下拉列表功能实例代码
Apr 08 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
Apr 20 Javascript
dts文件中删除一个node或属性的操作方法
Aug 05 Javascript
vue简单练习 桌面时钟的实现代码实例
Sep 19 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
Feb 27 Javascript
vue fetch中的.then()的正确使用方法
Apr 17 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学习 计数器实例代码
2008/06/15 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
destoon各类调用汇总
2014/06/20 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
Javascript 判断是否存在函数的方法
2013/01/03 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
2016/12/13 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
python爬虫之百度API调用方法
2017/06/11 Python
Python 多进程和数据传递的理解
2017/10/09 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
python 5个顶级异步框架推荐
2020/09/09 Python
Python grpc超时机制代码示例
2020/09/14 Python
Python和Bash结合在一起的方法
2020/11/13 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
师德承诺书
2015/01/20 职场文书
关于颐和园的导游词
2015/01/30 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL