js中的encodeURI和encodeURIComponent有什么区别?

在js中,encodeURI和encodeURIComponent都是用于编码url的,它们有什么不同?

encodeURI('https://q.zhixing.co/?page=2')
encodeURIComponent('https://q.zhixing.co/?page=2')
jsencodeURIComponentencodeURI
1
176
小课
小课2022-06-03 20:51
1 个回答
encodeURI

通常用于编码一个完整的URL。开发中我们可能会通过字符串拼接产生URL,而拼接的字符串中可能会有不符合URL规范的字符,我们希望能把这些不符合规范字符替换成转义字符,比如说下面这个URL。

encodeURI("https://zhixing.co/?keywords=react native")

经过encodeURI编码之后得到https://zhixing.co/?keywords=react%20native

encodeURIComponent

通常用于编码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

1
已修改
小课
小课2022-06-03 21:18
你的回答

内容