PHP: преобразовать пробелы в строку в% 20?

Как преобразовать пробелы в строку в %20 ?

Вот моя попытка:

 $str = "What happens here?"; echo urlencode($str); 

Вывод "What+happens+here%3F" , поэтому пробелы не представлены как %20 .

Что я делаю не так?

rawurlencode этого rawurlencode функцию rawurlencode .

Знак плюса – это историческое кодирование символа пробела в параметрах URL, как описано в справке для функции urlencode() .

Эта же страница содержит ответ, который вам нужен – вместо этого используйте rawurlencode() чтобы получить совместимую с RFC 3986 кодировку.

Я считаю, что если вам нужно использовать вариант %20 , вы можете использовать rawurlencode() .