tigtools

Codificador y decodificador de entidades HTML

Prepara texto para insertarlo en HTML o convierte entidades como & y é de nuevo en caracteres normales.

Se ejecuta en tu navegador Sin registro

Dirección

& < > " y ' siempre se escapan. Los demás caracteres solo se convierten si eliges una opción para los caracteres no ASCII.

Cómo usarla

  1. Elige Codificar para que el texto sea seguro en HTML o Decodificar para convertir las entidades de nuevo en caracteres.
  2. Al codificar, elige si las letras acentuadas y los símbolos deben mantenerse tal cual o convertirse en entidades.
  3. Escribe o pega el texto; el resultado se actualiza al instante.
  4. Copia el resultado o usa «Usar el resultado como entrada» para comprobar que se decodifica y vuelve al original.

Cómo funciona

En HTML, algunos caracteres tienen un significado especial: < inicia una etiqueta, & inicia una entidad, y " o ' cierran el valor de un atributo. Para mostrarlos como texto, hay que escribirlos como referencias de carácter: &lt; para <, &gt; para >, &amp; para &, &quot; para " y &#39; para '. El apóstrofo usa la forma numérica porque &apos; no está definido en HTML 4.

El resto de los caracteres, incluidas las letras acentuadas, el texto en chino y los emoji, se pueden escribir directamente si la página se guarda y se sirve como UTF-8, que es la codificación predeterminada en los sitios web modernos. Solo es necesario convertirlos en entidades para sistemas que no admiten UTF-8, como algunas plantillas de correo electrónico o bases de datos antiguas. En ese caso, puedes elegir entidades con nombre, como &eacute; cuando exista un nombre habitual (con una alternativa numérica para los demás caracteres), o referencias numéricas, como &#xE9; para cada carácter.

La decodificación no usa el analizador HTML del navegador. Usa una tabla integrada con las 252 entidades con nombre de HTML 4.01, &apos; y unas 30 entidades HTML5 habituales, además de referencias decimales y hexadecimales. Las referencias numéricas siguen las reglas de HTML5: &#0;, los valores sustitutos y los valores superiores a U+10FFFF se convierten en el carácter de reemplazo �, y los valores del 128 al 159 se interpretan como Windows-1252, por lo que &#150; se convierte en una raya. También se aceptan sin el punto y coma final algunos nombres heredados, como &amp y &copy, igual que en los navegadores. HTML5 define más de 2.000 nombres; los poco frecuentes que no están en la tabla se dejan sin cambios y se muestran en una lista.

Escapar el texto antes de insertarlo en HTML es una medida importante para protegerse contra el cross-site scripting (XSS), pero solo es correcto para el contenido de elementos y los valores de atributos entre comillas. El texto dentro de un bloque <script>, un atributo style o una URL necesita un escape diferente.

Ejemplos

Mostrar código en una página web

Para mostrar <div class="box"> como texto en una entrada de blog, conviértelo a &lt;div class=&quot;box&quot;&gt;. El navegador muestra la etiqueta original en lugar de crear un elemento.

Preparar texto para una plantilla de correo antigua

Con la opción «Entidades con nombre cuando estén disponibles», «Café – 5 €» se convierte en Caf&eacute; &ndash; 5 &euro;, que se muestra correctamente incluso si el correo electrónico se envía con una codificación de caracteres que no es UTF-8.

Limpiar texto extraído o exportado

Una exportación de un CMS contiene Fish &amp; Chips &#8211; &pound;9. Al decodificarla, se obtiene Fish & Chips – £9, listo para pegar en una hoja de cálculo.

Preguntas frecuentes

¿Qué caracteres hay que escapar en HTML?

En el contenido de un elemento, hay que escapar & y < (también se recomienda escapar >). En los valores de atributos, escapa además el carácter de comillas que delimita el valor. Escapar siempre los cinco caracteres (& < > " ') es la regla sencilla y segura que sigue esta herramienta.

¿Qué diferencia hay entre las entidades con nombre y las numéricas?

Las entidades con nombre, como &copy;, son más fáciles de leer, pero solo existen para un conjunto limitado de caracteres. Las referencias numéricas, como &#169; (decimal) o &#xA9; (hexadecimal), funcionan con cualquier carácter Unicode, incluidos los emoji.

¿Por qué &nbsp; se decodifica como algo que parece un espacio?

&nbsp; es un espacio de no separación (U+00A0). Parece un espacio normal, pero impide los saltos de línea y HTML no lo contrae. Es un carácter distinto del espacio normal, algo importante al comparar o buscar texto.

¿Tengo que codificar letras acentuadas como é?

No, si tu página usa UTF-8 (<meta charset="utf-8">), como ocurre en casi todas las páginas modernas. Mantén la opción predeterminada: solo se escapan los cinco caracteres especiales.

¿La codificación basta para prevenir XSS?

Es suficiente para texto no confiable que se inserta en el contenido de un elemento HTML o en valores de atributos entre comillas. No es suficiente para código JavaScript, CSS, atributos sin comillas ni URL como href="javascript:…"; estos requieren un tratamiento específico según el contexto.

Privacidad

La codificación y la decodificación se realizan en tu navegador mediante operaciones de cadenas de texto simples; el texto nunca se procesa como HTML, se sube, se almacena ni se incluye en las analíticas.