URL编码将“&”(和号)视为“&” HTML实体

2020/10/05 01:41 · javascript ·  · 0评论

我正在编码将在URL中通过GET传递的字符串。但是,如果使用escapeencodeURI或者encodeURIComponent&将被替换%26amp%3B,但我希望它被替换%26我究竟做错了什么?

如果看不到您的代码,除了在黑暗中刺破之外很难回答。我猜您传递给encodeURIComponent()的字符串使用的正确方法)是来自访问innerHTML属性的结果解决方案是改为获取innerText / textContent属性值:

var str, 
    el = document.getElementById("myUrl");

if ("textContent" in el)
    str = encodeURIComponent(el.textContent);
else
    str = encodeURIComponent(el.innerText);

如果不是这种情况,则可以使用replace()方法替换HTML实体:

encodeURIComponent(str.replace(/&/g, "&"));

如果您确实这样做:

encodeURIComponent('&')

然后的结果是%26您可以在这里进行测试确保您要编码的字符串是正确的 &,而不&是以...开头,否则,它会正确编码,这很可能是这种情况。如果由于某种原因需要不同的结果,可以.replace(/&/g,'&')在编码之前做一个

有HTML和URI编码。&& 在HTML编码%26&URI编码

因此,在对字符串进行URI编码之前,您可能需要先进行HTML解码,然后再对URI进行编码:)

var div = document.createElement('div');
div.innerHTML = '&AndOtherHTMLEncodedStuff';
var htmlDecoded = div.firstChild.nodeValue;
var urlEncoded = encodeURIComponent(htmlDecoded);

结果 %26AndOtherHTMLEncodedStuff

希望这可以节省您一些时间

本文地址:http://javascript.askforanswer.com/urlbianmajianghehaoshiweiamp-htmlshiti.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!