¿Cómo puedo convertir espacios en una cadena en %20
?
Aquí está mi intento:
$str = "What happens here?";
echo urlencode($str);
La salida es "What+happens+here%3F"
, por lo que los espacios no se representan como %20
.
¿Qué estoy haciendo mal?
El signo más es la codificación histórica de un carácter de espacio en los parámetros de URL, como se documenta en la ayuda de la
urlencode()
función.Esa misma página contiene la respuesta que necesita; utilícela
rawurlencode()
en su lugar para obtener la codificación compatible con RFC 3986 .fuente
Creo que, si necesita usar la
%20
variante, tal vez podría usarrawurlencode()
.fuente