javascript 三种编解码方式


Posted in Javascript onFebruary 01, 2010

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>');</script>

2、 进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

3、 js使用数据时可以使用escape[Huoho.Com编辑]

例如:搜藏中history纪录。

4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

========================================================

unescape 方法

从用 escape 方法编码的 String 对象中返回已解码的字符串。

function unescape(charString : String) : String

参数

charString

必选。要解码的 String 对象或文本。

备注

unescape 方法返回一个包含 charstring 内容的字符串值。所有以 %xx 十六进制形式编码的字符都用 ASCII 字符集当中等效的字符代替。以 %uxxxx 格式(Unicode 字符)编码的字符用十六进制编码 xxxx 的 Unicode 字符代替。注意 unescape 方法不应用于解码“统一资源标识符”(URI)。请改用 decodeURI 和 decodeURIComponent 方法。

decodeURI 方法

返回一个已编码的统一资源标识符 (URI) 的非编码形式。

function decodeURI(URIstring : String) : String

参数

URIstring

必选。表示编码 URI 的字符串。

备注

使用 decodeURI 方法代替已经过时的 unescape 方法。

decodeURI 方法返回一个字符串值。

如果 URIString 无效,将发生 URIError。

decodeURIComponent 方法

返回统一资源标识符 (URI) 的一个已编码组件的非编码形式。

function decodeURIComponent(encodedURIString : String) : String

必选的 encodedURIString 参数是一个表示已编码的 URI 组件的值。

备注

URIComponent 是一个完整的 URI 的一部分

Javascript 相关文章推荐
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
Jan 22 Javascript
JavaScript Memoization 让函数也有记忆功能
Oct 27 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
Mar 02 Javascript
JavaScript类的写法
Sep 17 Javascript
jQuery为DOM动态追加事件的方法
Feb 16 Javascript
JavaScript数据结构中串的表示与应用实例
Apr 12 Javascript
详解jquery选择器的原理
Aug 01 jQuery
浅谈vue-cli 3.0.x 初体验
Apr 11 Javascript
微信小程序canvas拖拽、截图组件功能
Sep 04 Javascript
Vue.js实现备忘录功能
Jun 26 Javascript
vue实现瀑布流组件滑动加载更多
Mar 10 Javascript
vue实现数字滚动效果
Jun 29 Javascript
对字符串进行HTML编码和解码的JavaScript函数
Feb 01 #Javascript
javaScript 关闭浏览器 (不弹出提示框)
Jan 31 #Javascript
javascript让setInteval里的函数参数中的this指向特定的对象
Jan 31 #Javascript
详细讲解JS节点知识
Jan 31 #Javascript
javascript中的array数组使用技巧
Jan 31 #Javascript
jquery 批量上传图片实现代码
Jan 28 #Javascript
Jquery 常用方法经典总结
Jan 28 #Javascript
You might like
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
PHP里的$_GET数组介绍
2019/03/22 PHP
jQuery checkbox全选/取消全选实现代码
2009/11/14 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
用Python实现命令行闹钟脚本实例
2016/09/05 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
python生成带有表格的图片实例
2019/02/03 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
商场促销活动方案
2014/02/08 职场文书
国窖1573广告词
2014/03/21 职场文书
公司聘任书模板
2014/03/29 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
学校团代会开幕词
2016/03/04 职场文书
高一作文之乐趣
2019/11/21 职场文书
mysql部分操作
2021/04/05 MySQL
MySQL 条件查询的常用操作
2022/04/28 MySQL