2009-12-14 117 views
4

我們即將開展一場微型聖誕節推廣大賽,我遇到了一些小問題。Twitter網址編碼

要進入,人們需要在以下格式發佈的tweet:

@user blah, blah, blah #hashtag 

目前,我已經在那裏他們進入他們的回答(在胡說,胡說,胡說)在表單和PHP腳本編碼整個聲明並在twitter上添加:

http://www.twitter.com/home?status=%40user%20blah%2Cblah%2Cblah%20%23hashtag 

然後將用戶推送到twitter並將狀態置於更新字段中。

但是,儘管空格(%20)被正確解碼,但即使發佈了推文,@和#字符仍然分別保留爲%40 &%23。我不能把實際的字符放在url中,因爲twitter會錯過這個搜索。

有什麼辦法解決這個問題嗎?如果可能的話,我希望不需要用戶名&密碼等。

任何幫助將不勝感激。

+0

Rich,能否詳細說一下「然後把用戶推到twitter上」的部分?你在處理文本後只是從PHP重定向? – 2009-12-14 20:43:54

回答

2

你可以嘗試只發布權到Twitter:

<form action="http://www.twitter.com/home" method="GET"> 
    <textarea name="status"> 

...

+0

保持簡單,呃?沒想到那個! 但是,我想對推文的結構有更多的控制權,而不必太依賴JS。 但是,謝謝,這可能是路! – Rich 2009-12-14 20:33:06

+1

我知道你的意思......我個人不會介意依賴JS(只要它只在JS啓用時才起作用),因爲http://twitter.com也需要JS。 – 2009-12-14 20:55:13

7

我有同樣的問題,解決方案非常簡單。

只需使用
http://twitter.com/home?status=
而不是
http://www.twitter.com/home?status=
如預期,即使該文本是不是在ASCII它會工作。

如果你想了解更多詳細信息,關於這個奇怪的現象看到這個博客帖子: http://www.kilometer0.com/blog/2010/01/21/twitter-status-urls-and-ampersands/

希望這可以幫助別人。

+0

乾杯:) 我在上面我所選的答案中也提到了這個! – Rich 2010-06-17 14:06:42

1

嗯。至少使用新的Twitter佈局時...這樣的:

http://twitter.com/home?status=This+is+a+test+%26+So+is+this

...重定向到這個(登錄時):

http://twitter.com/?status=This%20is%20a%20test%20&%20So%20is%20this

(注意未編碼&)。 ...和等待推文成爲:

這是一個測試

:(

無數的調整和變化沒有幫助。 (嘆。)

承認粗略的解決方法:將&(%26)更改爲+(%2B)。在向實體(重新)引入實體之前(例如,不要將%26更改爲%2B),以明文形式進行此操作可能是明智的。按照他們的說法,測量兩次,切一次。

1

一個詭計我得到這個之後......你要發送的utf-8編碼,您可以使用JavaScript來做到這一點,但我prefere PHP,因爲我的文字也是從tatabase傳來....

<a href="http://twitter.com/share?text=<?= urlencode(utf8_encode('HERE I USE THE TITLE OF MY ARTICLE FROM DATABASE')) ?>&lang=pt&url=<?= urlencode('http://jadielalves.com?s=stackoverflow') ;?>" target="_blank">SHARE ON TWITTER you can also put a twitter icon here... </a>