Escapar/Desescapar HTML

Convierte caracteres especiales como &, <, >, " y ' en entidades HTML (escapar), o convierte entidades de vuelta a sus caracteres originales (desescapar). Útil para prevenir XSS e insertar texto en HTML.

Entidades HTML con nombre más comunes

Carácter Entidad con nombre Referencia numérica Descripción
& &amp; &#38; Ampersand (símbolo de "y")
< &lt; &#60; Signo de menor que (igual al carácter de apertura de una etiqueta HTML)
> &gt; &#62; Signo de mayor que (igual al carácter de cierre de una etiqueta HTML)
" &quot; &#34; Comilla doble (delimitador de valores de atributo)
' &apos; &#39; Comilla simple (delimitador de valores de atributo)
  &nbsp; &#160; Espacio de no separación (un espacio que impide el salto de línea)
© &copy; &#169; Símbolo de copyright
® &reg; &#174; Símbolo de marca registrada
&trade; &#8482; Símbolo de marca comercial
&euro; &#8364; Símbolo del euro
¥ &yen; &#165; Símbolo del yen
¢ &cent; &#162; Símbolo del centavo

Consejos

  • El escape de HTML es la base de la prevención de XSS (cross-site scripting). Escapa siempre la entrada del usuario antes de insertarla en HTML.
  • El carácter & siempre debe escaparse primero. Si conviertes otros caracteres antes, el & dentro del &amp; recién generado quedará escapado dos veces.
  • Al insertar una cadena dentro de un valor de atributo, es más seguro escapar tanto " (comilla doble) como ' (comilla simple), no solo una de ellas.
  • Esta herramienta puede desescapar referencias numéricas decimales (&#38;), referencias numéricas hexadecimales (&#x26;) y las principales entidades con nombre (como &amp;).
  • Muchos motores de plantillas (Blade, JSX, Vue, etc.) escapan automáticamente el HTML al interpolar variables, pero si usas una sintaxis de "salida HTML sin procesar" como {!! !!} o v-html, deberás escapar el valor tú mismo.

Preguntas frecuentes

Estos tres caracteres —&lt;, &gt; y &amp;— son especiales porque los analizadores de HTML los interpretan como parte de la propia sintaxis. Si no se escapan, el navegador puede confundirlos con el inicio o el fin de una etiqueta, lo que puede provocar diseños rotos o XSS (inyección de scripts maliciosos).

La codificación de URL (percent-encoding) convierte caracteres especiales para representarlos de forma segura dentro de una URL, mientras que el escape de HTML evita que los caracteres se confundan con etiquetas dentro de un documento. Como sirven a propósitos distintos, si un valor de formulario se usa tanto como parámetro de URL como para mostrarse en HTML, puede que necesites aplicar ambas conversiones.

No. Toda la conversión se realiza completamente en tu navegador mediante JavaScript, y el texto que introduces nunca se envía a los servidores de toolbase.cc.

No. Esta herramienta solo escapa cinco caracteres: &, <, >, " y '. Los caracteres no ASCII, como los emojis o textos en otros idiomas, se muestran de forma segura tal cual en los entornos UTF-8 modernos, por lo que no necesitan conversión.
ツールくん

A propósito — El mecanismo de "referencias de caracteres" heredado de SGML

El origen de las entidades HTML (referencias de caracteres) se remonta a SGML (Standard Generalized Markup Language), el predecesor de HTML. SGML, estandarizado en 1986, ya contaba con un mecanismo de "referencia de caracteres" para poder usar el carácter delimitador de etiquetas < dentro del propio texto. HTML heredó este mecanismo casi sin cambios, y entidades básicas con nombre como &lt;, &gt; y &amp; ya estaban definidas en las primeras especificaciones de HTML durante la década de 1990.

Las entidades con nombre se valoraron originalmente como una forma de mostrar símbolos especiales de imprenta (como el símbolo de copyright &copy;, el de marca registrada &reg; y varias letras griegas) en entornos ASCII, antes de que Unicode se extendiera. La especificación HTML5 llegó a definir más de 2000 entidades con nombre, cubriendo incluso símbolos menores como marcas de verificación y notas musicales.

Hoy en día, la difusión de la codificación UTF-8 ha reducido enormemente la necesidad de referencias de caracteres para evitar texto ilegible. Sin embargo, tres caracteres —<, > y &— todavía requieren escape por una razón completamente distinta. Tienen un significado sintáctico especial para los analizadores de HTML (el inicio de una etiqueta, el final de una etiqueta y el inicio de una entidad), por lo que no escaparlos puede provocar directamente diseños rotos o vulnerabilidades de XSS.