Pack Camo

Codificador y decodificador de entidades HTML

Escapa texto para HTML y convierte las &entidades; de nuevo en caracteres. Todo se ejecuta localmente: no se sube nada.

Entrada
Text · HTML
Salida
Escaped HTML · decoded text

Texto

66 caracteres

HTML

102 caracteres

<p class="note">Fish & chips — £4.50, café crème "très bon" 😀</p>

Escapa texto para HTML o convierte entidades HTML de nuevo en texto

Este codificador de entidades HTML escapa los caracteres que de otro modo se leerían como marcado, y el decodificador convierte entidades como &, é y € de nuevo en los caracteres que representan. Elige referencias con nombre, decimales o hexadecimales, escapa solo lo necesario o todos los caracteres no ASCII, y consulta las entidades más comunes en la tabla de referencia. Todo se ejecuta en tu navegador; nada de lo que pegas se sube.

Cómo codificar o decodificar entidades HTML

  1. Elige Codificar para escapar texto para HTML, o Decodificar para convertir entidades de nuevo en caracteres.
  2. Al codificar, elige qué escapar: solo los caracteres especiales (& < > " ') o también todos los caracteres no ASCII.
  3. Elige la forma: con nombre (&eacute;), decimal (&#233;) o hexadecimal (&#xE9;).
  4. Copia el resultado o pásalo de nuevo a la entrada para comprobar la ida y vuelta. Activa Tabla de referencia para copiar una sola entidad.

Por qué HTML necesita escapado

En HTML, < inicia una etiqueta y & inicia una referencia de carácter, y dentro de un atributo la comilla termina el valor. Para mostrar esos caracteres como texto hay que escribirlos como entidades: &lt;, &amp;, &quot; y &#39;. Olvidarlo es lo que hace que un "<b" perdido en un comentario ponga en negrita el resto de la página y, cuando el texto viene de un usuario, lo que da lugar al cross-site scripting (XSS).

El escapado es la última línea de defensa, no la única. Los motores de plantillas como React, Vue, Jinja y Blade escapan la salida por ti; esta herramienta es para los sitios a los que no llegan: HTML estático, plantillas de correo, documentación, campos de CMS y depurar lo que un sistema guardó realmente.

Referencias con nombre, decimales y hexadecimales

El apóstrofo se escribe como &#39; y no como &apos;: &apos; es válido en HTML5 y XML, pero nunca formó parte de HTML 4, y algunos analizadores antiguos no lo conocen.

Con nombre (&eacute;)
Legible, y la forma que más gente reconoce. HTML5 define unos 2200 nombres, pero no todos los caracteres tienen uno; los caracteres sin nombre se escriben en decimal.
Decimal (&#233;)
El punto de código Unicode en base 10. Funciona para cualquier carácter, en cualquier analizador HTML y XML.
Hexadecimal (&#xE9;)
El mismo punto de código en base 16, que coincide con cómo lo escriben las tablas Unicode (U+00E9).

¿Hay que escapar las letras acentuadas y los emoji?

No en una página servida como UTF-8, que es casi cualquier página hoy en día. Solo hay que escapar los cinco caracteres especiales; "café", "日本語" y los emoji pueden escribirse tal cual. Es lo que hace la opción solo caracteres especiales, y mantiene el HTML legible.

Escapar todos los caracteres no ASCII sigue siendo útil cuando la salida pasa por algo que no admite UTF-8 con seguridad: un sistema heredado en ISO-8859-1 o Windows-1252, algunos flujos de correo o un archivo fuente cuya codificación no controlas. El resultado es ASCII puro y sobrevive a cualquiera de ellos.

Cómo funciona la decodificación

El decodificador lee referencias con nombre, decimales (&#169;) y hexadecimales (&#xA9;), siguiendo las reglas que usan los navegadores: las referencias numéricas en el rango 128–159 se leen como Windows-1252, como especifica el estándar HTML, así que &#150; se convierte en una raya corta; los puntos de código no válidos se convierten en el carácter de sustitución; y los pocos nombres heredados que los navegadores aceptan sin punto y coma, como &copy, también se decodifican. Los nombres desconocidos, normalmente erratas como &nbps;, se dejan en su sitio y se enumeran para que puedas corregirlos.

Si el texto viene de una URL y no de HTML, usa el decodificador de URL: %3C es codificación porcentual, no una entidad HTML.

Preguntas frecuentes

¿Qué son las entidades HTML?
Las entidades HTML son códigos que representan caracteres, escritos entre & y ;. Permiten mostrar caracteres que HTML trataría como marcado, como < y &, o caracteres difíciles de escribir, como © o un espacio de no separación.
¿Qué caracteres hay que escapar en HTML?
Cinco: & como &amp;, < como &lt;, > como &gt;, la comilla doble como &quot; y la comilla simple como &#39;. Las comillas solo importan dentro de los valores de atributo, pero escaparlas en todas partes no hace daño.
¿Cómo decodifico entidades HTML?
Elige Decodificar y pega el texto. Las entidades con nombre, decimales y hexadecimales se convierten en caracteres mientras escribes, y se enumeran los nombres de entidad desconocidos.
¿Qué diferencia hay entre &nbsp; y un espacio normal?
&nbsp; es un espacio de no separación: parece un espacio, pero impide que la línea se parta en ese punto, y los navegadores no juntan varios en uno. Es útil entre un número y su unidad, como 10&nbsp;kg.
¿Uso &apos; o &#39; para el apóstrofo?
&#39; funciona en todas partes. &apos; es válido en HTML5 y XML, pero no en HTML 4, así que &#39; es la opción más segura para correo y sistemas antiguos.
¿Escapar HTML evita el XSS?
Escapar el texto antes de insertarlo en HTML es la defensa principal contra el cross-site scripting, pero debe ajustarse al contexto: el texto HTML, los atributos, las URL y JavaScript necesitan cada uno su propia codificación. Mejor usa un sistema de plantillas que escape automáticamente.
¿Se envía mi texto a un servidor?
No. La codificación y decodificación ocurren por completo en tu navegador.