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