2009-11-11 3 views
0

На моем сайте www.gibberize.com, если вы наберете слово «и» в верхней части textarea, символ «&» появится во втором текстовом поле.ampersand, не проходящий через URL-адрес

Проблема в том, что ссылка «tweet it» затем добавит текст второй textarea к URL-адресу и перейдет к ссылке, но поскольку это амперсанд, он сломает текст.

Любые решения?

+0

На каком языке вы выполняете обратное кодирование? –

ответ

1

Используйте функцию PHP urlencode().

+0

О, конечно, предполагается, что вы используете PHP. Извини за это. – Franz

+0

Это не сработает, потому что конверсия - это все клиентская сторона. –

+0

Это не имеет значения. Дело в том, что твит отправляется по URL-адресу. – Franz

3

Да, избегайте символа амперсанда перед добавлением твита, измените любой & для% 26. Вы можете в

encodeURIComponent()

весь текст.

Примечание: оригинальная функция, предложенная мной, была побег().

+0

Это можно сделать в Javascript –

+1

'escape' не подходит для URL-кодирования; EncodeURIComponent правильный. 'escape' на самом деле не должен использоваться ни для чего. – bobince

10

Используйте функцию encodeURIComponent. Вы можете просто изменить его на %26 самостоятельно, но безопаснее использовать предоставленную функцию, так как это позаботится о любых других нечетных символах, которые могут быть испорчены при передаче.

+0

Похоже, он попробовал это сейчас. – Franz

+0

также самый лучший набор 'element.href =' непосредственно; не используйте 'setAttribute', который менее читабельен и прослушивается различными способами в IE. – bobince