norfipc.com
Herramientas   Mapa del sitio   Reciente
NorfiPC » Herramientas » Escapar caracteres

Escapar y codificar caracteres de direcciones URL a hexadecimal



Herramienta para convertir caracteres incompatibles que causan errores en navegadores web y peticiones, con la función escape() y los métodos encodeURI y EncodeURIComponent.
Escapar y codificar caracteres de direcciones URL a hexadecimal
En las direcciones URL o cadenas de caracteres que se envían en internet en marcadores o Bookmarklets que usan JavaScript, así como en todo tipo de peticiones que se envía a un servidor usando diferentes métodos como formularios, necesitamos escapar correctamente los caracteres que no son compatibles, para evitar errores.
Especialmente causan conflictos los caracteres <>&#!””, las barras inversas (\), dos puntos(:), así como también los espacios en blanco.
Usa la siguiente herramienta para convertirlos al formato hexadecimal.



Escapar y codificar direcciones URL









Métodos de escapar caracteres a hexadecimal con JavaScript


Hay tres opciones para escapar caracteres de una dirección URL con JavaScript: "escape()", "encodeURI()" y "encodeURIComponent()".
Son diferentes.

Función escape

La función escape() crea una nueva cadena de caracteres en los que ciertos caracteres han sido sustituidos por una secuencia hexadecimal de escape.
Reemplaza todos los caracteres, incluyendo espacios vacíos, con la excepción de los alfabéticos (letras), dígitos decimales (números) y los siete siguientes:
@*_+-./
Se puede ver en la siguiente tabla, los caracteres hexadecimales por los que son sustituidos algunos de los caracteres codificados con escape().
Espacio vacio%20
Dos puntos (:)%3A
Barra inversa (\)%5C
Interrogación (?)%3F
Comilla simple (')%27
Comilla simple (')%27
Comilla simple (')%27
Escape se considera obsoleto después de la ECMAScript 3, pero sigue totalmente funcional.



Método encodeURI

El método encodeURI() codifica los caracteres de una dirección URL, reemplazando cada instancia de ciertos caracteres por uno, dos o tres secuencias de escape, representando el carácter codificado en UTF-8.
Reemplaza todos los caracteres incluyendo espacios, con la excepción de los alfabéticos (letras), dígitos decimales (números) y los veinte siguientes:
;,/?:@&=+$-_.!~*'()#
encodeURI es el método actual que se debe emplear para codificar direcciones URL, sin valores de parámetros.
Por ejemplo:
https://norfipc.com/img/una flor.jpg
Devuelve:
https://norfipc.com/img/una%20flor.jpg
No se puede emplear en solicitudes HTTP GET y POST y en XMLHTTPRequests, porque no escapa los caracteres: & + =



Método EncodeURIComponent

El método encodeURIComponent() codifica los caracteres de una dirección URL, reemplazando cada instancia de ciertos caracteres, por uno, dos, tres o cuatro secuencias de escape, representando el carácter codificado en UTF-8.
Reemplaza todos los caracteres incluyendo espacios, con la excepción de los alfabéticos (letras), dígitos decimales (números) y los nueve siguientes:
-_.!~*'()
EncodeURIComponent no se debe emplear para codificar direcciones URL completas porque las destruye, solo se debe usar para los parámetros.
Por ejemplo:
https://norfipc.com/img/una flor.jpg
Devuelve:
https%3A%2F%2Fnorfipc.com%2Fimg%2Funa%20flor.jpg
EncodeURIComponent no codifica comillas simples ('), por lo que deben ser sustituidas previamente por dobles (").



Diferencias entre encodeURI y encodeURIComponent


La diferencia entre encodeURI y encodeURIComponent, son exactamente 11 parámetros, los que son codificados por encodeURIComponent, pero no por encodeURI.
La relación se puede ver en la siguiente imagen.
Captura de tabla en la consola de Google Chrome, con los caracteres que codifican encodeURI y encodeURIComponent.
Captura de tabla en la consola de Google Chrome, con los caracteres que codifican encodeURI y encodeURIComponent
Para ver esta tabla en el navegador, copia y pega el siguiente código en la Consola de Google Chrome y presiona Enter.
var ascii = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
var encoded = [];
ascii.split("").forEach(function (char) {
    var obj = { char };
    if (char != encodeURI(char))
        obj.encodeURI = encodeURI(char);
    if (char != encodeURIComponent(char))
        obj.encodeURIComponent = encodeURIComponent(char);
    if (obj.encodeURI || obj.encodeURIComponent)
        encoded.push(obj);
});
console.table(encoded);

Páginas relacionadas



Indica que te gusta y comparte

Sígueme en las redes sociales


 
Inicio | Mapa del sitio | Buscar | Sobre mí