Las URL y los URI están diseñados para ubicar/identificar recursos disponibles en Internet, cualquier cosa que identifique de manera única un recurso es su URI, como id, nombre. Una URL especifica un recurso y su protocolo de acceso. Todas las URL son URI, pero no todas las URI son URL. URI solo puede tener ciertos caracteres del juego de caracteres estándar 128 ASCII. Los caracteres reservados que no pertenecen a este conjunto deben codificarse. Esto significa que necesitamos codificar estos caracteres al pasar a una URL. En JavaScript, tenemos dos funciones especiales para cumplir con estas tareas de codificación y decodificación de URI. codificarURI() y decodificarURI() estas funciones se introducen para codificar/decodificar caracteres no ingleses, como letras latinas y griegas utilizadas en URI (identificador uniforme de recursos). Además, es útil codificar caracteres especiales, reemplazar espacios en blanco en URI; a veces, estos caracteres especiales o espacios en blanco pueden delimitar el URI.
1. encodeURI(): se utiliza para codificar un URI determinado en formato UTF-8. La función encodeURI() toma URI (de tipo string) como un valor de parámetro de función y codifica un URI reemplazando cada instancia de ciertos caracteres con una, dos, tres o cuatro secuencias de escape que representan la codificación UTF-8 del carácter.
Sintaxis:
encodeURI(URI)
Parámetros: aquí, URI es el parámetro que consiste en un identificador de recurso uniforme URI completo (de tipo string) que desea codificar.
Valor de retorno: la función anterior devolverá una nueva string que representa el ‘URI codificado’ para el URI proporcionado como parámetro para la función.
Nota: En muchos navegadores, encodeURI() no codifica muchos caracteres, los siguientes son el conjunto de caracteres especiales [ ~!@#$&*()=:/,;?+’ ] para codificar estos conjuntos de caracteres, se implementa escape() por separado. Además de alfabetos y números en inglés [ AZ az 0-9 – _ . ! ~ * ‘ ( ) ] no son escapados por encodeURI() para codificar la string URI completa, puede usar encodeURI() y si tiene para la parte de la string URI, puede usar encodeURIComponent() para codificar una parte particular de la string URI.
2. decodeURI(): Se utiliza para decodificar URI ya codificados previamente. Esto funciona a la inversa, tomando una string codificada y reemplazando los tokens con los caracteres normales. La función decodeURI() toma encodedURI (de tipo string) como un valor de parámetro de función y decodifica un URI codificado dado, creado previamente por encodeURI() o por una rutina similar.
Sintaxis:
decodeURI(encodedURI)
Parámetros: Aquí, encodedURI es el parámetro que representa un URI (Identificador Uniforme de Recursos) completo y codificado. Si desea decodificar, el parámetro URI debe contener el URI solo en forma codificada. Además, lanza una excepción ‘URIError’ si el parámetro dado ‘encodedURI’ contiene secuencias de caracteres no válidas.
Valor de retorno: la función anterior devolverá una nueva string que representa la versión decodificada del URI dado en forma codificada.
Nota: Reemplaza cada secuencia de escape en el URI codificado con el carácter que representa, pero no decodifica las secuencias de escape que encodeURI no podría haber introducido. También se utiliza para decodificar las URL cirílicas; La URL cirílica contiene un alfabeto cirílico que se parece a las letras del alfabeto latino (usado en inglés), a veces se usa para rastrear al usuario y lo redirige a sitios web falsos.
Ejemplo:
Javascript
<script> const uri = 'https://www.geeksforgeeks.org/?x=γεια'; const encoded = encodeURI(uri); console.log("Encoded URI - ", encoded); // Expected output: //"https://www.geeksforgeeks.org/?x=%CE%B3%CE%B5%CE%B9%CE%B1" try { console.log("Decoded URI - ", decodeURI(encoded)); // Expected output: // "https://www.geeksforgeeks.org/?x=γεια" } catch (e) { console.error(e); } </script>
Producción: