javascript encodeURIComponent, возвращающий дополнительные символы - PullRequest
2 голосов
/ 05 октября 2011

По какой-то причине я получаю дополнительный код в своем кодированном URI с помощью функции javascript encodeURIcomponent, а именно символа% 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 Ответ

2 голосов
/ 05 октября 2011

Удалите «www» из «www.twitter», и это работает.

http://jsfiddle.net/tzkpz/

Twitter должен перекодировать URL-адрес при перенаправлении с www.twitter.comна twitter.com, следовательно, двойная кодировка.

...