Codificación de URL
Algunos caracteres no pueden aparecer en URLs (por ejemplo, espacios), otros tienen significados especiales en las URLs. Necesitamos convertir caracteres especiales para ajustarlos a la sintaxis definida en la especificación de URI W3 (RFC 3986). Esto significa que las URLs deben contener solo un subconjunto de un carácter ASCII especial: las letras y números que conocemos, así como algunos caracteres reservados que se usan como caracteres de control en la URL.
Procesamiento de codificación de URL en JavaScript
En JavaScript, tanto las funciones integradas encodeURIComponent() como encodeURI() pueden codificarse por URL, reemplazando los caracteres reservados en la URL por sus caracteres codificados en UTF-8.
La mayoría de los navegadores codifican automáticamente URLs, como codificar espacios hasta %20, pero siempre hay algunas excepciones. Afortunadamente, los navegadores ofrecen funciones integradas de codificación y decodificación de URLs: encodeURI, encodeURIComponent y decodeURI, decodeURIComponent. La cuestión es cómo usar estas funciones y cuál es la diferencia entre ellas.
encodeURI()
Codificar una cadena de URL es fácil, solo tienes que llamar al encodeURI y pasar la cadena que quieres codificar. Esta función devuelve la URL codificada.
decodeURI()
Esta función decodifica y llama a la función decodeURI, pasando la cadena codificada, y luego devuelve la cadena normal decodificada.
encodeURIComponent()
La función encodeURIComponent debe utilizarse para codificar los valores de los parámetros de la cadena de consulta. La diferencia entre encodeURI y encodeURIComponent es que encodeURIComponent codifica toda la cadena, mientras que encodeURI ignora el prefijo del protocolo ('http://') así como el nombre de dominio. encodeURIComponent está diseñado para codificar todo, mientras que encodeURI ignora la parte del nombre de dominio de la URL. Cuando túCuando quieras codificar el valor del parámetro en la URL, selecciona la función encodeURIComponent。
decodeURIComponent()
La función decodeURIComponent decodificará la cadena codificada de la función encodeURIComponent y la restaurará a su contenido normal.
Revisión:
|