URL.toString() 函数是否对 URL 进行编码

问题描述 投票:0回答:1

我有以下示例代码:

const url = new URL("http://example.com");
url.searchParams.append("name", "Mustermann");
url.searchParams.append("question", "how does the URL.toString() function work?");
window.open(url.toString(), '_self');

我的问题是 URL 是否对不同的 searchParams 进行编码? 如果它对 URL 进行编码,它会使用什么函数? 是否使用了encodeURI() 函数或encodeURIComponent() 函数,或者是否有所不同。

javascript url
1个回答
0
投票

URL 类在内部使用encodeURIComponent 对各个参数值进行编码,当使用 URL 类构建 URL 时,您无需担心它。

代码中 url.toString() 的输出将是:

http://example.com/?name=Mustermann&question=how%20does%20the%20URL.toString()%20function%20work%3F

以下是编码 URL 的详细信息:

参数值“Mustermann”中的空格被编码为%20。

参数值中的空格“URL.toString() 是如何实现的? function work?” 编码为 %20,特殊字符如 (, ), 和 ?也被编码。

URL 类负责为您正确编码参数,确保生成的 URL 有效并遵循标准 URL 编码规则。

© www.soinside.com 2019 - 2024. All rights reserved.