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