Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回附加字符的javascript编码器组件_Javascript_Url_Uri_Urlencode - Fatal编程技术网

返回附加字符的javascript编码器组件

返回附加字符的javascript编码器组件,javascript,url,uri,urlencode,Javascript,Url,Uri,Urlencode,出于某种原因,我在使用javascript encodeURIcomponent函数的编码URI中获得了额外的代码,即%25个字符: 我的职能是: function twit_click() { var u="https://www.website.com/<?php echo $_SESSION['id'];?>"; var t="sometext"; window.open('http://www.twitter.com/share?url='+encod

出于某种原因,我在使用javascript encodeURIcomponent函数的编码URI中获得了额外的代码,即%25个字符:

我的职能是:

function twit_click() {
    var u="https://www.website.com/<?php echo $_SESSION['id'];?>";
    var t="sometext";
    window.open('http://www.twitter.com/share?url='+encodeURIComponent(u)+'&text='+encodeURIComponent(t),'twitsharer','toolbar=0,status=0,width=626,height=436');
    return false;   
}
function twit\u click(){
变量u=”https://www.website.com/";
var t=“sometext”;
打开窗户http://www.twitter.com/share?url=“+encodeURIComponent(u)+”和text=“+encodeURIComponent(t),“twitsharer”,“工具栏=0,状态=0,宽度=626,高度=436”);
返回false;
}
当我单击文本并调用twit_click()函数时,我得到以下URL:

http://twitter.com/intent/tweet?text=sometext&url=https%253A%252F%252Fwww.website.com%252Fuserid

与它应该是什么相反:

http://twitter.com/intent/tweet?text=sometext&url=https%3A%2F%2Fwww.website.com%2Fuserid

我错过什么了吗?它添加了额外的“25”字符,这意味着我的URI中有%,而我显然没有。

从“www.twitter”中删除“www”,它就工作了


Twitter从www.Twitter.com重定向到Twitter.com时,必须对URL重新编码,因此采用了双重编码。

看起来您的
u
已经编码,因此您可能不必再次编码。看起来好像编码了两次。您拥有的代码不是生成这些URL的代码(qs参数的顺序),因此我将查看生成这些URL的代码。@anq-是的。Twitter的系统从共享页面路由到其上的/intent/own@PaulGrime-它可能已编码,也可能未编码,$\u会话ID变量可能具有特殊字符,在这种情况下不会进行url编码。请尝试不编码它。。。也许是浏览器弄坏了你预先编码的电话,我敢肯定它会接受未编码的。