Escape / desescape HTML

Escapa texto para HTML o decodifica referencias de caracteres en el navegador. Codifica & < > " y ' en nodos de texto; decodifica referencias con nombre y numéricas.

Cómo funciona
  • Escapa & < > " y ' en nodos de texto HTML. No es un sanitizador XSS completo para atributos o scripts.

Escapa & < > " y ' en nodos de texto HTML. No es un sanitizador XSS completo para atributos o scripts.

Sobre el escape HTML

¿Qué es el escape HTML?

El escape HTML sustituye caracteres con significado especial en HTML para que se muestren como texto y no como marcado. Esta página codifica & < > " y ' como & < > " y '.

Desescapar invierte eso: decodifica las referencias con nombre amp, lt, gt, quot y apos, y las numéricas como ' y '. El trabajo ocurre en el navegador. Escapar nodos de texto no sustituye una codificación según el contexto ni un sanitizador XSS.

Escapar y desescapar en código

JavaScript
text.replace(/&/g, "&amp;")
    .replace(/</g, "&lt;")
    .replace(/>/g, "&gt;")
    .replace(/"/g, "&quot;")
    .replace(/'/g, "&#39;")
Python
html.escape(text, quote=True)
html.unescape(text)
Entidades
&  &amp;
<  &lt;
>  &gt;
"  &quot;
'  &#39;

Preguntas sobre el escape HTML

¿Qué es el escape HTML?
El escape HTML codifica caracteres que de otro modo se tratarían como marcado. Esta página convierte & < > " y ' en & < > " y ' para mostrarlos como texto.
¿Qué es desescapar HTML?
Desescapar HTML decodifica referencias de caracteres de vuelta a texto. Se admiten amp, lt, gt, quot y apos, además de referencias numéricas decimales y hexadecimales.
¿El escape HTML evita XSS?
No. Escapar esos cinco caracteres basta para nodos de texto HTML, pero atributos, URL y scripts necesitan codificación según el contexto. Esto no es un sanitizador.
¿Cómo escapar una cadena HTML en código?
En JavaScript sustituye & < > " y ' por sus entidades. En Python usa html.escape(text, quote=True) y html.unescape(text).