Tech

Codificador de entidades HTML

Codificá texto a entidades HTML (con nombre o numéricas) y decodificá entidades de vuelta a caracteres reales. Acentos, ñ, símbolos y los caracteres especiales, todo en vivo y en tu navegador.

Instantáneo🔒En tu navegadorSin registro
En vivo
Qué codificar
Resultado codificado

Qué son las entidades HTML

Una entidad HTML es una forma de escribir un carácter usando un código en lugar del carácter tal cual. Existen por varios motivos. Primero, hay caracteres reservados: el navegador toma el signo < como el comienzo de una etiqueta, así que para mostrar un menor que literal en la página hay que escribirlo como &lt;. Segundo, en encodings viejos o mal configurados los acentos y la ñ se rompían, y escribirlos como &eacute; o &ntilde; garantizaba que se vieran bien en cualquier lado. Tercero, muchos símbolos como ©, o no están en el teclado y son más fáciles de tipear con su nombre. Se usan para mostrar código en un blog, para armar emails HTML que se vean igual en clientes viejos, para prevenir XSS al insertar contenido de usuario, y en cualquier CMS que codifique el texto que pegás.

Con nombre, decimales y hexadecimales

Toda entidad arranca con un ampersand y termina con punto y coma. En el medio puede ir un nombre (&copy; para el copyright), un número decimal precedido por almohadilla (&#169;), o un número hexadecimal con #x (&#xA9;). Las tres formas de arriba representan el mismo carácter. Las entidades con nombre son legibles pero solo existen para un set limitado; las numéricas funcionan para cualquier carácter Unicode, incluidos emojis. Por eso, cuando codificás con nombres, lo que no tiene nombre cae automáticamente a numérica.

Codificar y decodificar de forma segura

Codificar significa pasar de <café> a &lt;café&gt; (solo especiales) o a &lt;caf&#233;&gt; (todo lo no-ASCII). Decodificar es el camino inverso: de &#233; volvés a é, de &ntilde; a ñ, de &amp; a &. Muchos conversores decodifican metiendo el texto en innerHTML, lo que puede ejecutar scripts escondidos. Acá no: usamos un mapa explícito de nombres y String.fromCodePoint para las numéricas, todo como texto puro, y el resultado va al valor de un textarea. Nunca tocamos innerHTML, así que decodificar es seguro incluso con contenido malicioso.

Tabla de referencia de entidades comunes

CarácterCon nombreDecimalHexadecimalDescripción
&&amp;&#38;&#x26;Ampersand
<&lt;&#60;&#x3C;Menor que
>&gt;&#62;&#x3E;Mayor que
"&quot;&#34;&#x22;Comilla doble
'&apos;&#39;&#x27;Comilla simple
(espacio)&nbsp;&#160;&#xA0;Espacio de no separación
©&copy;&#169;&#xA9;Copyright
®&reg;&#174;&#xAE;Marca registrada
&trade;&#8482;&#x2122;Trademark
&euro;&#8364;&#x20AC;Euro
£&pound;&#163;&#xA3;Libra esterlina
°&deg;&#176;&#xB0;Grado
±&plusmn;&#177;&#xB1;Más/menos
×&times;&#215;&#xD7;Multiplicación
&mdash;&#8212;&#x2014;Raya (em dash)
&ndash;&#8211;&#x2013;Guion medio (en dash)
&hellip;&#8230;&#x2026;Puntos suspensivos
«&laquo;&#171;&#xAB;Comilla angular izquierda
»&raquo;&#187;&#xBB;Comilla angular derecha
ñ&ntilde;&#241;&#xF1;Eñe minúscula
é&eacute;&#233;&#xE9;E con acento agudo
¿&iquest;&#191;&#xBF;Apertura de interrogación

Para qué sirve este codificador

  • Mostrar fragmentos de código HTML en un blog sin que se rendericen.
  • Armar emails HTML que se vean igual en clientes viejos, con símbolos y acentos codificados.
  • Prevenir XSS codificando el input de usuario antes de meterlo en el DOM.
  • Limpiar texto que llegó con entidades desde un feed RSS, una API o un export de base de datos.
  • Insertar símbolos que no están en el teclado (©, €, ™, flechas) por su nombre.

Preguntas frecuentes

¿Qué es una entidad HTML?

Una forma de escribir un carácter con un código en vez del carácter en sí. Empieza con ampersand, sigue con un nombre o número, y termina con punto y coma. Sirve para caracteres reservados, acentos y símbolos.

¿Cuál es la diferencia entre entidades con nombre y numéricas?

Las con nombre usan una palabra (amp, copy, ntilde) y son legibles pero limitadas. Las numéricas usan el número Unicode, en decimal o hex, y funcionan para cualquier carácter. Sin nombre disponible, se cae a numérica.

¿Qué es &nbsp; y para qué sirve?

Es un espacio de no separación: se ve como un espacio normal pero el navegador nunca corta la línea ahí ni colapsa varios seguidos. Útil para mantener juntas palabras o unidades.

¿Cuándo necesito codificar a entidades HTML?

Para mostrar caracteres que el HTML interpretaría como código, para escribir código en un blog, para emails HTML compatibles con clientes viejos, o para prevenir XSS al insertar contenido de usuario en el DOM.

¿Entidad decimal o hexadecimal: cuál uso?

Las dos representan el mismo número Unicode. Decimal (&#233;) es más legible; hexadecimal (&#xE9;) coincide con la notación U+00E9 de las tablas Unicode y del CSS. Elegí la que te sea más cómoda.

¿Las entidades HTML previenen XSS?

Sí. Codificar los caracteres especiales antes de insertar contenido en una página hace que una etiqueta script se muestre como texto en vez de ejecutarse. Codificá siempre el input que no controlás.

¿Es seguro decodificar acá?

Sí. No usamos innerHTML (que puede ejecutar scripts). Decodificamos con un mapa explícito de nombres y String.fromCodePoint para las numéricas, como texto puro, al valor de un textarea.

¿Se envía mi texto a un servidor?

No, todo ocurre en tu navegador con JavaScript. Tu texto no sale de tu dispositivo.

¿Te sirvió este generador?