& < > " '. Extendido codifica además todos los caracteres no-ASCII. Elegí entre entidades con nombre (&), decimales (&) o hexadecimales (&). Cómo funciona
Las entidades HTML representan caracteres que tienen significado especial en el marcado (< > & " ') o que no son ASCII, mediante secuencias como <, & o ©. Así el navegador los muestra como texto en lugar de interpretarlos como código.
Hay tres formatos equivalentes: con nombre (©), decimal (©) y hexadecimal (©). Los tres producen el mismo carácter; el de nombre es más legible pero solo existe para un conjunto conocido.
El alcance "esencial" escapa solo los caracteres que rompen el HTML (& < > " '); el alcance "todos" escapa además cualquier carácter no ASCII.
Ejemplos
<a href="#"><a href="#">Escapar evita que el navegador interprete las etiquetas y las muestra como texto.5 < 10 & 3 > 15 < 10 & 3 > 1© 2024 · €© 2024 · €Con alcance "todos" y formato con nombre. En decimal serían © y €; en hexadecimal, © y €.Casos de uso
- Mostrar código HTML como texto en una página (ejemplos, documentación) sin que se renderice.
- Escapar la entrada del usuario antes de insertarla en el HTML para prevenir XSS.
- Insertar símbolos especiales (©, €, →, ½) de forma portable entre codificaciones.
- Decodificar texto con entidades copiado del código fuente de una página.
Preguntas frecuentes
¿Qué formato conviene: con nombre, decimal o hexadecimal?
El de nombre (©) es el más legible, pero solo cubre caracteres con nombre definido. El decimal (©) y el hexadecimal (©) sirven para cualquier carácter Unicode, así que son la opción segura para símbolos poco comunes.
¿Codificar entidades previene ataques XSS?
Es una parte importante, pero el escape debe hacerse según el contexto (contenido HTML, atributo, JavaScript o URL). No confíes en una única capa: usá también las protecciones del framework.
¿Cuáles son los caracteres que siempre hay que escapar?
& < y > en el contenido, y además " y ' dentro de los valores de atributos. El alcance "esencial" cubre exactamente ese conjunto.
¿Se envía mi texto a un servidor?
No. La codificación y la decodificación ocurren íntegramente en tu navegador.