在我们的NextJS应用程序中,有一个URL,其中包含各种查询字符串。
然而,对于一些查询字符串,我们遇到了编码显示的问题。例如像这样:
我们正在这样使用
然而,对于一些查询字符串,我们遇到了编码显示的问题。例如像这样:
http://localhost:8080/my-app/test-app?project=project%3Aone&project=project%3Atwo
正如您所看到的,冒号被替换为%CA
。
我知道这可能是默认行为,但我需要URL中的冒号。
有没有办法让我得到这个?所以我需要上面的URL像这样:
http://localhost:8080/my-app/test-app?project=project:one&project=project:two
我们正在这样使用
URLSearchParams()
:const constructQueryString = (params: any) => {
const searchParams = new URLSearchParams();
const projects = params.project.split(',');
projects.forEach((p) => {
urlSearchParams.append('project', p);
});
return searchParams.toString();
};
searchParams.getAll('project');
,你会看到它返回了['project:one', 'project:two']
。 - Reyno:
是一个不安全的 ASCII 字符。它会被转换,以便可以安全地通过互联网发送。而且,正如您所看到的,当使用.get
或.getAll
方法时,它会被转换回来。请参阅 HTML URL 编码 了解更多信息。 - Reyno