¿Qué es Codificador/Decodificador de Entidades HTML?

Un codificador/decodificador de entidades HTML convierte caracteres especiales como <, >, & y comillas a sus equivalentes en entidades HTML (y viceversa). Esto previene vulnerabilidades XSS al incrustar contenido de usuario en HTML y soluciona problemas de visualización con caracteres especiales.

El codificador convierte caracteres como <, >, &, ", ' y cualquier punto de código Unicode en entidades nombradas (&amp;, &lt;), referencias decimales (&#38;) o referencias hexadecimales (&#x26;). Un selector de alcance permite codificar solo los cinco caracteres reservados, todos los caracteres especiales o cada carácter no ASCII. La decodificación revierte cualquiera de los tres formatos. Útil para sanear entradas de usuario o recuperar texto de exportaciones de correo HTML.

Cómo usar

  1. Paso 1 — Pega texto que contenga caracteres especiales o entidades HTML.
  2. Paso 2 — Elige "Codificar" para convertir caracteres a entidades, o "Decodificar" para volver a convertir entidades en caracteres.
  3. Paso 3 — Elige un formato (Nombrado, Decimal o Hex) y un alcance para controlar cuánto se codifica.

Cuándo usar

  • Pegar ejemplos de código en un CMS sin que < y > desaparezcan como etiquetas.
  • Limpiar texto sacado de correos HTML o de scraping con &mdash; y &nbsp; intactos.
  • Escapar contenido del usuario antes de inyectarlo en plantillas del servidor para bloquear XSS.

Resultado

Necesitas mostrar el fragmento de código <div class="hero"> dentro de un párrafo HTML. Codifícalo como &lt;div class=&quot;hero&quot;&gt; para que el dispositivo muestre el texto en lugar de interpretarlo como marcado.

Preguntas frecuentes

¿Cuál es la diferencia entre entidades nombradas y numéricas?
Las nombradas usan atajos legibles (&copy; para ©). Las numéricas usan el punto Unicode (&#169; o &#xA9;). Las numéricas cubren cualquier Unicode; las nombradas solo unos 250 caracteres definidos por HTML5.
¿Hace falta codificar todos los caracteres especiales o solo algunos?
En el cuerpo HTML solo necesitas codificar & < > y la comilla usada en valores de atributos. En contextos JavaScript o URL las reglas cambian. El selector de alcance ofrece: Solo reservados para los cinco caracteres críticos de XSS, Todos los especiales para tipografía además de reservados, o Todo no ASCII para la cobertura más completa.
¿Codificar rompe el copiar-pegar o los lectores de pantalla?
No. El navegador decodifica las entidades antes de pintar el texto, así que el usuario ve y copia el carácter original. Los lectores de pantalla reciben también la forma decodificada. Las entidades son un formato de transporte para el marcado, no para el lector.
¿Codificar entidades HTML basta para detener XSS?
Para texto del cuerpo HTML sí. En atributos hay que entrecomillar el valor y codificar la comilla. JavaScript, CSS y URLs tienen reglas de escape propias. La codificación es la primera capa, no toda la defensa.
¿Por qué algunas entidades llevan &#x y otras solo &#?
&#x indica un punto en hexadecimal y &# uno en decimal. Apuntan al mismo carácter: &#xA9; y &#169; son ambos ©. El hex coincide con la notación U+ que usa Unicode y queda más corto para puntos altos.

Herramientas relacionadas