У меня есть html-текст. Я закодировал его в php, используя функцию urlencode. Я хочу декодировать этот текст в javascript. когда я использую функцию unescape в javascript, он заменяет все специальные символы, но sapce заменяется на "+". как я могу сделать это правильно, чтобы пространство было заменено как само пространство???
Php javascript url encoding
Ответ 1
Попробуйте вместо этого использовать rawurlencode - urlencode делает некоторые вещи по-разному для "исторических" причин.
Подробнее см. http://us.php.net/manual/en/function.urlencode.php.
Ответ 2
PHP rawUrlEncode() == JavaScript encodeURIComponent()
PHP rawUrlDecode() == JavaScript decodeURIComponent()
Ответ 3
Скобки являются исключениями из всего сказанного в этой статье.
режим geek on:
ложь
PHP rawUrlEncode() !== JavaScript encodeURIComponent()
, но true
PHP rawUrlEncode() == JavaScript encodeURIComponent()
Другими словами, существует множество специальных символов, которые не рассматриваются как безопасные в rawurlencode, когда они находятся в encodeURIComponent.
Ответ 4
Попробуйте следующее:
return decodeURIComponent((str + '').replace(/\+/g, '%20'));
Источник: http://phpjs.org/functions/urldecode:572