在js中,encodeURI和encodeURIComponent都是用于编码url的,它们有什么不同?
encodeURI('https://q.zhixing.co/?page=2')
encodeURIComponent('https://q.zhixing.co/?page=2')
通常用于编码一个完整的URL。开发中我们可能会通过字符串拼接产生URL,而拼接的字符串中可能会有不符合URL规范的字符,我们希望能把这些不符合规范字符替换成转义字符,比如说下面这个URL。
encodeURI("https://zhixing.co/?keywords=react native")
经过encodeURI
编码之后得到https://zhixing.co/?keywords=react%20native
。
通常用于编码URL中的某一部分或者某一参数。比如说一个URL中存在一个参数url也是链接,这种情况下就需要使用encodeURIComponent
来编码参数url,比如下面这个示例。
'https://zhixing.co?url=' + encodeURIComponent("https://q.zhixing.co")
经过encodeURIComponent
编码之后,得到https://zhixing.co?url=https%3A%2F%2Fq.zhixing.co
。
内容