JS19 encodeURI和encodeURIComponent

统一资源标识符,或叫做URI,是用来标识互联网上的资源(例如,网页或文件)和怎样访问这些资源的传输协议(例如,HTTP 或 FTP)的字符串

encodeURI()encodeURIComponent()方法可以对URI进行编码,编码为UTF-8编码,前者不会对属于URI的特殊字符进行编码,比如冒号、正斜杠等,而后者会对所有发现的特殊字符进行编码

encodeUR会替换所有的字符,但不包括以下字符,即使它们具有适当的UTF-8转义序列:

类型 包含
保留字符 / ? : @ & = + $
非转义的字符 字母 数字 - _ . ! ~ * ' ( )
数字符号 #
let str = 'http://www.baidu.com/我'

encodeURI(str)
// "http://www.baidu.com/%E6%88%91"

encodeURIComponent(str)
// "http%3A%2F%2Fwww.baidu.com%2F%E6%88%91"

请注意,encodeURI自身无法产生能适用于HTTP协议中GET或POST请求的URI,例如对于XMLHTTPRequests, 因为&,+, 和=不会被编码,然而在GET和POST请求中它们是特殊字符。然而encodeURIComponent这个方法会对这些字符编码。

所以一般来说,使用encodeURIComponent()的场景是对URI中某一段(一般是查询参数)进行处理,使用相对更加频繁

var test = 'http://www.baidu.com/?type=a&name=zhou';
console.log(encodeURI(test), 'encodeURI');
// http://www.baidu.com/?type=a&name=zhou

console.log(encodeURIComponent(test), 'encodeURIComponent');
// http%3A%2F%2Fwww.baidu.com%2F%3Ftype%3Da%26name%3Dzhou

decodeURIdecodeURIComponent用来解码,用法类似。

参考

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,092评论 19 139
  •   引用类型的值(对象)是引用类型的一个实例。   在 ECMAscript 中,引用类型是一种数据结构,用于将数...
    霜天晓阅读 4,813评论 0 1
  • 1,我以前一直误以为老子的主张是“无为”,最近听了易中天的音频,才明白:原来老子的主张是--无为而“治”,重点落在...
    Angel刘咏霞阅读 1,234评论 0 0
  • 筷子和我的故事 我结婚时,妻子家准备了一把红筷子,那真是一把红筷子,绝对不是用红颜料把亭杆染红的。我参加好多人的婚...
    一枚冰儿阅读 3,964评论 1 0

友情链接更多精彩内容