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