资讯专栏INFORMATION COLUMN

JS系列之url编码

TerryCai / 467人阅读

摘要:它是现今最通用的单字节编码系统,并等同于国际标准。如果组件中含有分隔符,比如和,则应当使用方法分别对各组件进行编码

ASCII 字符

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

以下是部分ASCII码对照表:

为什么需要对URI进行编码

对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义。

Javascript中提供了3对函数用来对Url编码以得到合法的Url:

escape --> unescape

encodeURI --> decodeURI

encodeURIComponent --> decodeURIComponent

下面的表格列出了这三个函数的安全字符(即函数不会对这些字符进行编码):

escape --> unescape

不对 ASCII 字母、数字进行编码

不对 *@-_+./ 进行编码

其他所有的字符都会被转义序列替换

这个方法属于过时产物,ECMAScript v3 反对使用该方法,应用使用 encodeURI() 和 encodeURIComponent() 替代它。

encodeURI --> decodeURI

不对 ASCII 字母和数字进行编码。

不对 -_.!~*"();/?:@&=+$,# 这20个ASCII 标点符号进行编码。

其他所有的字符都会被转义序列替换

encodeURIComponent --> decodeURIComponent

它跟encodeURI的区别就是,encodeURI是对整个url进行编码,而encodeURIComponent是对url的个别部分进行编码。
如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码

encodeURIComponent("http://www.baidu.com?name=zhang@xiao@jie&order=1");
// http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/99290.html

相关文章

  • JS系列目录

    摘要:设计模式资源整理操作符小知识点实现发邮件功能数据结构与算法资源整理跨域函数的合成与柯里化系列之防抖节流系列之正则系列之系列之系列之编码系列之系列之操作符对象中的坐标检测对象或数组系列之机制系列之构造对象系列之总结系列之浅复制与深复制系列之对 Javascript设计模式资源整理JS操作符JS小知识点JS实现发邮件功能数据结构与算法资源整理跨域函数的合成与柯里化JS系列之防抖节流JS系列...

    AaronYuan 评论0 收藏0
  • 前端必知必会HTTP请求系列(三)HTTP报文内的http信息

    摘要:报文用于协议交互的信息被称为报文。现在出现的各种首部字段及状态码稍后会阐述。状态码响应报文包含了多个范围的内容使用。如果服务器无法响应范围请求,则会返回状态码和完整的实体内容。 showImg(https://segmentfault.com/img/bVbthNL?w=900&h=500); http报文 用于HTTP协议交互的信息被称为HTTP报文。请求端的http报文叫做请求报文...

    Invoker 评论0 收藏0
  • JS魔法堂:不完全国际化&本地化手册 拓展篇

    摘要:前言最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求国际化本地化。因此不是表示存在多个选择而是表示没有适合的选项。 前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求——国际化&本地化。熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在有的阶段而已。趁着这个机会好好学习整理一下,为后面的技术选型做准备。 本篇作为系列的最后一篇,...

    Karuru 评论0 收藏0
  • 前端资源系列(4)-前端学习资源分享&前端面试资源汇总

    摘要:特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 本以为自己收藏的站点多,可以很快搞定,没想到一入汇总深似海。还有很多不足&遗漏的地方,欢迎补充。有错误的地方,还请斧正... 托管: welcome to git,欢迎交流,感谢star 有好友反应和斧正,会及时更新,平时业务工作时也会不定期更...

    princekin 评论0 收藏0
  • 前端安全系列:XSS篇

    摘要:系列文章前端安全系列篇前端安全系列篇攻击全称跨站脚本攻击,为不和层叠样式表的缩写混淆,故将跨站脚本攻击缩写为,是一种在应用中的计算机安全漏洞,它允许恶意用户将代码植入到提供给其它用户使用的页面中。 系列文章: 前端安全系列:XSS篇前端安全系列:CSRF篇 XSS攻击 全称跨站脚本攻击,为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻...

    xiaolinbang 评论0 收藏0

发表评论

0条评论

TerryCai

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<