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