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 相关文章推荐
ExtJs 3.1 XmlTreeLoader Example Error
Feb 09 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
May 26 Javascript
js调用activeX获取u盘序列号的代码
Nov 21 Javascript
JS时间特效最常用的三款
Aug 19 Javascript
jQuery中fadein与fadeout方法用法示例
Sep 16 Javascript
JavaScript反弹动画效果的实现代码
Jul 13 Javascript
Angular中自定义Debounce Click指令防止重复点击
Jul 26 Javascript
vue中过滤器filter的讲解
Jan 21 Javascript
vue以组件或者插件的形式实现throttle或者debounce
May 22 Javascript
VSCode 配置uni-app的方法
Jul 11 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
Jul 20 Javascript
jquery插件实现轮播图效果
Oct 19 jQuery
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
实现“上一页”和“下一页按钮
2006/10/09 PHP
PHP 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
js 页面执行时间计算代码
2009/03/04 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
Vue精简版风格概述
2018/01/30 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
小程序Request的另类用法详解
2019/08/09 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
利用scrapy将爬到的数据保存到mysql(防止重复)
2018/03/31 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
int在python中的含义以及用法
2019/06/27 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
一份软件工程师的面试试题
2016/02/01 面试题
环境科学专业大学生自荐信格式
2013/09/21 职场文书
儿科护士实习自我鉴定
2013/10/17 职场文书
保险公司演讲稿
2014/09/02 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
信息技术国培研修日志
2015/11/13 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
MySQL约束超详解
2021/09/04 MySQL