rawurlencode - urlencode php ejemplo
¿Por qué necesitas codificar URL? (4)
Bueno, lo haces porque cada navegador diferente sabe cómo se codifica la cadena que compone la URL. la conversión del espacio a% 20, etc. hace que esa URL / URI sea portátil. Podría ser latin-1 podría ser unicode. Necesita normalizarse a algo que se entiende universalmente. Eche un vistazo a rfc3986 http://tools.ietf.org/html/rfc3986#section-2.1
¿Por qué necesitas codificar urls? ¿Hay una buena razón por la cual tiene que cambiar cada espacio en los datos GET a %20
?
De RFC 2936 , sección 2.4.3:
El carácter de espacio se excluye porque los espacios significativos pueden desaparecer y los espacios insignificantes pueden introducirse cuando el URI se transcribe o se escribe o se somete al tratamiento de programas de procesamiento de textos. El espacio en blanco también se usa para delimitar el URI en muchos contextos.
Porque algunos personajes tienen significados especiales.
Por ejemplo, en una cadena de consulta, el signo &
( &
) se utiliza como un separador entre los pares clave-valor. Si pusiera un signo & en uno de esos valores, se vería como el separador entre el final de un valor y el comienzo de la siguiente clave. Entonces, para caracteres especiales como este, utilizamos la codificación porcentual para que podamos estar seguros de que los datos están codificados de manera no ambigua.
- los navegadores originalmente más antiguos podrían confundirse con los espacios (ya no es un problema).
- ahora, si alguien copia la URL para enviarla como un enlace, el espacio puede romper el hipervínculo, es decir,
¡Oye! ¡Mira este gato derping tocando el piano!
http://www.mysite.com/?video=funny cat plays piano.
Vea cómo se rompe el enlace?
Ahora mira esto:
http://www.mysite.com/?video=funny%20cat%20plays%20piano.