gpt4 book ai didi

javascript - 如何在不属于查询参数的 URL 中对 & 进行编码?

转载 作者:行者123 更新时间:2023-12-03 07:01:32 25 4
gpt4 key购买 nike

我正在从 XML 中获取数据并构建一个 URL 以传递给 Pinterest。

Pinterest URL 结构为

https://www.pinterest.com/pin/create/button/?url=[URL]&media=[media URL]&description=[description]

出于我无法控制的原因,XML 中的 [description] 字段具有文字与符号。示例:“花生酱和果冻三明治”

如果我尝试将整个 Pinterest URL 放入encodeURIComponent() 中,则 & 变为 %26,但它不是查询参数 &。

预期输出应该是: https://www.pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.test.com%2Frecipe%2Fpeanut-butter-jelly-sandwich.html&media=http%3A%2F%2Fwww.test.com/images/pbjs.jpg&description=Peanut%20Butter%20%26%20Jelly%20Sandwich

XSLT 1.0 或 JS 中有哪些选项可以帮助我处理这个问题?

编辑1:添加了预期输出。

编辑2:事实证明,我们的网站中有另一段代码执行重定向,并且它需要在其自身之后进行特殊字符的编码。它造成了不兼容性。

最佳答案

在将 [description] 添加到 URL 之前,您需要对其进行转义。

"https://www.pinterest.com/pin/create/button/?url=[URL]&media=[media URL]&description=" + escape("Peanut Butter & Jelly Sandwich")

或者你也可以这样做

var data = {
url: 'http://google.com',
media: 'http://media/url',
description: 'Peanut Butter & Jelly Sandwich'
};
var pinterest_url = 'https://www.pinterest.com/pin/create/button/?url=[url]&media=[media]&description=[description]';
for (var key in data) {
pinterest_url = pinterest_url.replace("[" + key + "]", escape(data[key]));
}

alert(pinterest_url);

关于javascript - 如何在不属于查询参数的 URL 中对 & 进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37033293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com