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