Ответ 1
Используйте вместо этого функцию rawurlencode
.
Как преобразовать пробелы в строку в %20
?
Вот моя попытка:
$str = "What happens here?";
echo urlencode($str);
Вывод "What+happens+here%3F"
, поэтому пробелы не представлены как %20
.
Что я делаю неправильно?
Используйте вместо этого функцию rawurlencode
.
Знак плюса - это историческое кодирование символа пробела в параметрах URL, а задокументировано в справке для функции urlencode()
.
Эта же страница содержит ответ, который вам нужен - вместо этого используйте rawurlencode()
, чтобы получить RFC 3986.
Я считаю, что если вам нужно использовать вариант %20
, вы можете использовать rawurlencode()
.