php javascript кодировка URL - PullRequest
26 голосов
/ 09 июля 2009

У меня есть HTML-текст. Я закодировал его в php с помощью функции urlencode. Я хочу декодировать этот текст в JavaScript. когда я использую функцию unescape в javascript, она заменяет все специальные символы назад, но sapce заменяется на «+». как я могу сделать это правильно, чтобы пространство заменялось как само пространство ???

Ответы [ 4 ]

51 голосов
/ 10 мая 2011

PHP rawUrlEncode () == JavaScript encodeURIComponent ()

PHP rawUrlDecode () == JavaScript decodeURIComponent ()

17 голосов
/ 09 июля 2009

Попробуйте вместо этого использовать rawurlencode - по историческим причинам urlencode делает некоторые вещи по-другому.

См. http://us.php.net/manual/en/function.urlencode.php для получения дополнительной информации.

4 голосов
/ 25 ноября 2013

Скобки - исключения из всего, что сказано в этом посте.

Режим Geek на:

ложь

PHP rawUrlEncode() !== JavaScript encodeURIComponent()

но верно

PHP rawUrlEncode() == JavaScript encodeURIComponent()

Другими словами, есть много специальных символов, которые не обрабатываются как безопасные в rawurlencode, когда они находятся в encodeURIComponent.

3 голосов
/ 26 сентября 2012

Попробуйте это:

return decodeURIComponent((str + '').replace(/\+/g, '%20'));

Источник: http://phpjs.org/functions/urldecode:572

...