Codificador de entidades HTML
Escapa un texto en entidades HTML para que los caracteres del marcado sobrevivan, en tu navegador.
Se ejecuta enteramente en tu navegador. No se sube, registra ni guarda nada.
Cinco caracteres no pueden aparecer literalmente en HTML sin cambiar lo que significa el marcado: el ampersand, los dos corchetes angulares y los dos tipos de comilla. Escaparlos es lo que convierte un trozo de texto en un trozo de texto que un navegador mostrará en lugar de obedecer.
Cómo funciona
El modo mínimo escapa solo esos cinco caracteres. Es la elección correcta casi siempre: si tu página es UTF-8 y tus archivos son UTF-8, una letra acentuada no necesita escaparse y escaparla hace el código fuente más difícil de leer sin ganancia alguna.
Las entidades con nombre sustituyen a todos los caracteres a los que HTML 4.01 les pone nombre —252 en total, é como é, © como ©—. Úsalas cuando la salida tenga que pasar por algo que destroza todo lo que esté por encima de ASCII, como un sistema de correo antiguo o una columna de base de datos con la colación equivocada.
Las referencias numéricas dan la misma garantía por punto de código en lugar de por nombre, así que funcionan con cualquier carácter y no solo con los 252 que tienen nombre. Se escriben en hexadecimal con el punto y coma de cierre, que acepta cualquier analizador.
Ejemplos
| Caso | Entrada | Resultado |
|---|---|---|
| Una etiqueta que hay que mostrar, no ejecutar | <script>alert(1)</script> | <script>alert(1)</script> |
| Un ampersand dentro de un valor | Tom & Jerry | Tom & Jerry |
| Una letra acentuada, con nombre | café | café |
Preguntas frecuentes
¿Escapar aquí basta para que la entrada de un usuario sea segura?
Para el texto entre etiquetas, y para el valor de un atributo entre comillas, sí: las comillas también se escapan. En otros sitios, no: un valor que va a una URL, a un bloque de estilos o a un bloque de script necesita su propio escapado, y las entidades HTML son la herramienta equivocada para los tres. Escapa en el punto de salida, en el contexto de esa salida, en tu código, y no pegando el texto en una página web.
¿Por qué el apóstrofo se escapa como ' y no como '?
' no está en HTML 4.01. Se añadió en XHTML y después en HTML5, y los navegadores antiguos lo muestran literalmente. La forma numérica ha funcionado siempre en todas partes.
¿Qué entidades con nombre están admitidas?
Las 252 de HTML 4.01. HTML5 define unas dos mil más, casi todas matemáticas, y aquí no están incluidas. Todo lo que no tenga nombre en ese conjunto se deja tal cual en el modo con nombre, o se escapa por punto de código en el modo numérico.
¿Hace falta escapar los acentos en un sitio moderno?
No. Si la página declara UTF-8 y el archivo está guardado como UTF-8, é es simplemente é. Las entidades con nombre son para hacer pasar un texto por sistemas que no son limpios en UTF-8.
Conviene saber
- Todo ocurre en tu navegador. Lo que pegas no se sube, no se registra y no se almacena.
Fuentes
Todas las herramientas de Código