gpt4 book ai didi

javascript - 从 JSON 元素的内容构造 URL 以避免输出中出现编码字符的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-27 22:37:47 25 4
gpt4 key购买 nike

我正在尝试将 JSON 消息的输出发送到 Twitter,如下所示:

         $.getJSON(
'http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1&callback=',
'json',
function(data) {
$("#quote-content").html(data[0].content + "<br> --" + data[0].title);
tweetText = data[0].content.replace(/<\/?[^>]+>/gi, '');
url = "https://twitter.com/intent/tweet?text=" + '"' + tweetText + '"';
console.log(url);
$('#tweet').attr("href", url);
}
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

问题是,当数据中存在诸如单引号(撇号)、破折号或双引号之类的字符时,内容会像这样被 chop :

原始字符串:

Almost everything – all external expectations, all pride, all fear of embarrassment or failure – these things just fall away in the face of death, leaving only what is truly important.

推文在第一个未处理的字符处被切断:

"Almost everything

Screenshot Here

================================================== =========================

为了解决这个问题,我尝试更改:

url = "https://twitter.com/intent/tweet?text="+ '"' + tweetText + '"';

url = "https://twitter.com/intent/tweet?text="+ '"' +encodeURIComponent(tweetText) + '"';

现在输出是这样的:

原始字符串:

Best thing about creating something is that it starts living it’s own life.

推文文本现已完全显示,但显示编码字符:

Screenshot here

抱歉,我不得不发布屏幕截图,因为 Stack Overflow 实际上正确地转义了字符!

我的问题是,将报价发送到 Twitter 时如何显示原始文本(包含所有字符)?

感谢您的帮助!

最佳答案

我用这个解决了这个问题:

var elem = document.createElement('textarea');
elem.innerHTML = tweetText;
tweetText = elem.value;

基本上,文本是通过 API 以 HTML 编码形式发送的,因此我必须在构建 URL 之前对其进行解码。

关于javascript - 从 JSON 元素的内容构造 URL 以避免输出中出现编码字符的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38972598/

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