Codificador / Decodificador de Entidades HTML
Codifica caracteres especiales a entidades HTML y decodifícalos de vueltaTambién necesitas:Codificador / Decodificador Base64Codificador / Decodificador URLVista Previa de Markdown
Modo:Alcance:
Input
Ctrl↵
Acerca de Codificador / Decodificador de Entidades HTML
Codifica caracteres HTML especiales (<, >, &, ", ') a sus equivalentes en entidades HTML (<, >, &, ", '), o decodifica entidades de vuelta a texto plano.
Preguntas frecuentes
¿Qué es la codificación de entidades HTML?
La codificación de entidades HTML convierte los caracteres con significado especial en HTML, como <, >, & y ", en sus equivalentes de entidad (<, >, &, "). Esto evita que el contenido proporcionado por el usuario sea interpretado como marcado HTML, bloqueando los ataques de scripts entre sitios (XSS).
¿Cuál es la diferencia entre las entidades HTML con nombre y las entidades numéricas?
Las entidades con nombre usan un mnemónico: & para &, < para <, © para ©. Las entidades numéricas usan el punto de código Unicode en decimal © o hexadecimal ©, ambos representan ©. Las entidades con nombre solo existen para los caracteres más usados; cualquier carácter Unicode puede expresarse como entidad numérica. Los documentos HTML5 modernos en UTF-8 pueden usar el carácter Unicode directamente sin codificación.
¿Qué caracteres HTML siempre deben codificarse para prevenir XSS?
Los cinco caracteres críticos para la prevención de XSS son: & → &, < → <, > → >, " → " y ' → ' (o '). En los valores de atributos HTML, tanto < como el carácter de comilla que rodea el atributo deben codificarse. Los motores de plantillas modernos (React, Vue, Jinja2) codifican estos caracteres automáticamente; la codificación manual solo es necesaria en la concatenación directa de cadenas.
¿Por qué necesito entidades HTML si mi página usa codificación UTF-8?
Con UTF-8 y <meta charset="UTF-8">, la mayoría de los caracteres Unicode pueden colocarse directamente en HTML sin codificación. Las entidades HTML siguen siendo necesarias para los caracteres con significado estructural en HTML (< > & " ') y ocasionalmente para navegadores muy antiguos. Usar el carácter Unicode real (©, €, →) es preferible a las entidades con nombre en HTML moderno en UTF-8.
¿Cómo decodifico entidades HTML en JavaScript o Python?
JavaScript: const txt = document.createElement("textarea"); txt.innerHTML = cadenaCodificada; const decodificada = txt.value. Node.js: usa la biblioteca he (npm install he): he.decode("<b>"). Python: from html import unescape; unescape("<b>") devuelve "<b>". PHP: html_entity_decode($cadena).