Codifica y decodifica entidades HTML — < > & y más
También podrías necesitar
Las entidades HTML son secuencias de escape que representan caracteres especiales en HTML sin que el navegador los interprete como marcado. Los cinco fundamentales — &amp; (&), &lt; (<), &gt; (>), &quot; (") y &#39; (') — son la primera línea de defensa contra XSS (Cross-Site Scripting): sin codificarlos, un atacante puede inyectar etiquetas <script> o atributos onclick en campos de texto o URLs. Esta herramienta codifica y decodifica sin dependencias externas: la codificación usa reemplazos de cadena directos y la decodificación soporta los tres formatos de entidades HTML5 — entidades con nombre (&eacute;, &copy;, &hellip;), referencias numéricas decimales (&#233;) y referencias numéricas hexadecimales (&#xE9;, &#x1F600;), incluyendo emojis y caracteres Unicode completos. Todo el procesamiento ocurre en tu navegador — ningún texto sale de tu dispositivo.
¿Qué son las entidades HTML y por qué son importantes?
Las entidades HTML son secuencias de escape que representan caracteres con significado especial en HTML. Los cinco esenciales son &amp; (&), &lt; (<), &gt; (>), &quot; (") y &#39; ('). Sin codificarlos, el navegador los interpreta como marcado HTML en lugar de texto — un < sin codificar puede abrir una etiqueta, rompiendo el layout o creando vulnerabilidades XSS que permitan ejecutar código malicioso.
¿Cuándo debo codificar HTML y cuándo no?
Codifica siempre que insertes contenido dinámico (de usuarios, APIs o bases de datos) dentro de HTML. Los casos más críticos: atributos de etiquetas (<input value="{contenido}">), contenido dentro de elementos (<p>{contenido}</p>), y URLs (<a href="{url}">). No es necesario codificar en hojas de estilos CSS, scripts JavaScript separados, o al escribir HTML estático que tú mismo controlas.
¿Cuál es la diferencia entre &apos; y &#39;?
&apos; es la entidad con nombre para el apóstrofe, introducida en XML/XHTML pero no definida en HTML 4. En HTML5 sí es válida, pero algunos parsers antiguos no la reconocen. &#39; es la referencia numérica decimal (código Unicode 39) y funciona en todos los navegadores sin excepción. Para máxima compatibilidad, especialmente en atributos HTML, se recomienda &#39; sobre &apos;.
¿Cómo maneja la herramienta entidades numéricas y emojis?
La decodificación soporta tres formatos: entidades con nombre (&eacute; → é), referencias numéricas decimales (&#233; → é) y referencias numéricas hexadecimales (&#xE9; → é o &#x1F600; → 😀). Para entidades numéricas se usa String.fromCodePoint(), que maneja correctamente el rango Unicode completo incluyendo todos los emojis y caracteres suplementarios fuera del BMP.
¿Es suficiente codificar HTML para prevenir XSS?
La codificación HTML previene XSS cuando insertas contenido en el cuerpo HTML o en atributos — es el método correcto y más importante. Sin embargo, hay contextos donde no es suficiente: en URLs (necesitas encodeURIComponent), en código JavaScript inline (necesitas JSON.stringify o listas de allowlist), o en CSS (usa una librería específica). La regla general: cada contexto (HTML, JS, CSS, URL) tiene su propio método de escape.