javascript encodeURIComponent返回其他字符

时间:2011-10-04 22:52:59

标签: 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='+encodeURIComponent(u)+'&text='+encodeURIComponent(t),'twitsharer','toolbar=0,status=0,width=626,height=436');
    return 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中有%,我显然没有。

1 个答案:

答案 0 :(得分:2)

从“www.twitter”中删除“www”,它可以正常工作。

http://jsfiddle.net/tzkpz/

Twitter必须重新编码从www.twitter.com重定向到twitter.com的URL,因此需要双重编码。