Кодировка URL в твиттере - PullRequest
       28

Кодировка URL в твиттере

4 голосов
/ 14 декабря 2009

Мы собираемся запустить небольшой рождественский конкурс в Твиттере, и я столкнулся с небольшим препятствием.

Чтобы войти, люди должны будут опубликовать твит в следующем формате:

@user blah, blah, blah #hashtag

В настоящее время у меня есть форма, в которой они вводят свой ответ (бла, бла, бла) и сценарий PHP, который кодирует весь оператор и добавляет в твиттер URL:

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

Затем переводит пользователя в твиттер и помещает статус в поле обновления.

Однако, хотя пробелы (% 20) декодируются нормально, символы @ и # остаются как% 40 и% 23 соответственно, даже когда твит опубликован. Я не могу поместить настоящие символы в URL, поскольку твиттер ошибочно принимает их за поиск.

Есть ли способ решить это? Я хотел бы сделать это, не требуя имени пользователя, пароля и т. Д., Если это возможно.

Любая помощь будет принята с благодарностью.

Ответы [ 5 ]

7 голосов
/ 17 июня 2010

У меня была такая же проблема, и решение было очень простым.

Просто используйте
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/

Надеюсь, это кому-нибудь поможет.

4 голосов
/ 14 декабря 2009

Кодируйте пробелы как +, и это работает: http://twitter.com/home?status=%40user+blah%2Cblah%2Cblah+%23hashtag

2 голосов
/ 14 декабря 2009

Вы можете попробовать опубликовать прямо в Twitter:

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

...

1 голос
/ 27 апреля 2011

После того, как я получил это ... Вы должны отправить в кодировке UTF8, вы можете использовать javascript для этого, но я предпочитаю PHP, потому что мой текст также пришел из базы ....

<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>

1 голос
/ 14 октября 2010

Хм. По крайней мере, при использовании нового макета 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). Отмерь дважды, отрежь, как говорится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...