Codificador y decodificador de entidades HTML
Escapa texto para HTML y convierte las &entidades; de nuevo en caracteres. Todo se ejecuta localmente: no se sube nada.
- Entrada
- Text · HTML
- Salida
- Escaped HTML · decoded text
Texto
66 caracteres
HTML
102 caracteres
<p class="note">Fish & chips — £4.50, café crème "très bon" 😀</p>
Escapa texto para HTML o convierte entidades HTML de nuevo en texto
Este codificador de entidades HTML escapa los caracteres que de otro modo se leerían como marcado, y el decodificador convierte entidades como &, é y € de nuevo en los caracteres que representan. Elige referencias con nombre, decimales o hexadecimales, escapa solo lo necesario o todos los caracteres no ASCII, y consulta las entidades más comunes en la tabla de referencia. Todo se ejecuta en tu navegador; nada de lo que pegas se sube.
Cómo codificar o decodificar entidades HTML
- Elige Codificar para escapar texto para HTML, o Decodificar para convertir entidades de nuevo en caracteres.
- Al codificar, elige qué escapar: solo los caracteres especiales (
& < > " ') o también todos los caracteres no ASCII. - Elige la forma: con nombre (
é), decimal (é) o hexadecimal (é). - Copia el resultado o pásalo de nuevo a la entrada para comprobar la ida y vuelta. Activa Tabla de referencia para copiar una sola entidad.
Por qué HTML necesita escapado
En HTML, < inicia una etiqueta y & inicia una referencia de carácter, y dentro de un atributo la comilla termina el valor. Para mostrar esos caracteres como texto hay que escribirlos como entidades: <, &, " y '. Olvidarlo es lo que hace que un "<b" perdido en un comentario ponga en negrita el resto de la página y, cuando el texto viene de un usuario, lo que da lugar al cross-site scripting (XSS).
El escapado es la última línea de defensa, no la única. Los motores de plantillas como React, Vue, Jinja y Blade escapan la salida por ti; esta herramienta es para los sitios a los que no llegan: HTML estático, plantillas de correo, documentación, campos de CMS y depurar lo que un sistema guardó realmente.
Referencias con nombre, decimales y hexadecimales
El apóstrofo se escribe como ' y no como ': ' es válido en HTML5 y XML, pero nunca formó parte de HTML 4, y algunos analizadores antiguos no lo conocen.
- Con nombre (é)
- Legible, y la forma que más gente reconoce. HTML5 define unos 2200 nombres, pero no todos los caracteres tienen uno; los caracteres sin nombre se escriben en decimal.
- Decimal (é)
- El punto de código Unicode en base 10. Funciona para cualquier carácter, en cualquier analizador HTML y XML.
- Hexadecimal (é)
- El mismo punto de código en base 16, que coincide con cómo lo escriben las tablas Unicode (U+00E9).
¿Hay que escapar las letras acentuadas y los emoji?
No en una página servida como UTF-8, que es casi cualquier página hoy en día. Solo hay que escapar los cinco caracteres especiales; "café", "日本語" y los emoji pueden escribirse tal cual. Es lo que hace la opción solo caracteres especiales, y mantiene el HTML legible.
Escapar todos los caracteres no ASCII sigue siendo útil cuando la salida pasa por algo que no admite UTF-8 con seguridad: un sistema heredado en ISO-8859-1 o Windows-1252, algunos flujos de correo o un archivo fuente cuya codificación no controlas. El resultado es ASCII puro y sobrevive a cualquiera de ellos.
Cómo funciona la decodificación
El decodificador lee referencias con nombre, decimales (©) y hexadecimales (©), siguiendo las reglas que usan los navegadores: las referencias numéricas en el rango 128–159 se leen como Windows-1252, como especifica el estándar HTML, así que – se convierte en una raya corta; los puntos de código no válidos se convierten en el carácter de sustitución; y los pocos nombres heredados que los navegadores aceptan sin punto y coma, como ©, también se decodifican. Los nombres desconocidos, normalmente erratas como &nbps;, se dejan en su sitio y se enumeran para que puedas corregirlos.
Si el texto viene de una URL y no de HTML, usa el decodificador de URL: %3C es codificación porcentual, no una entidad HTML.
Preguntas frecuentes
- ¿Qué son las entidades HTML?
- Las entidades HTML son códigos que representan caracteres, escritos entre & y ;. Permiten mostrar caracteres que HTML trataría como marcado, como < y &, o caracteres difíciles de escribir, como © o un espacio de no separación.
- ¿Qué caracteres hay que escapar en HTML?
- Cinco: & como &, < como <, > como >, la comilla doble como " y la comilla simple como '. Las comillas solo importan dentro de los valores de atributo, pero escaparlas en todas partes no hace daño.
- ¿Cómo decodifico entidades HTML?
- Elige Decodificar y pega el texto. Las entidades con nombre, decimales y hexadecimales se convierten en caracteres mientras escribes, y se enumeran los nombres de entidad desconocidos.
- ¿Qué diferencia hay entre y un espacio normal?
- es un espacio de no separación: parece un espacio, pero impide que la línea se parta en ese punto, y los navegadores no juntan varios en uno. Es útil entre un número y su unidad, como 10 kg.
- ¿Uso ' o ' para el apóstrofo?
- ' funciona en todas partes. ' es válido en HTML5 y XML, pero no en HTML 4, así que ' es la opción más segura para correo y sistemas antiguos.
- ¿Escapar HTML evita el XSS?
- Escapar el texto antes de insertarlo en HTML es la defensa principal contra el cross-site scripting, pero debe ajustarse al contexto: el texto HTML, los atributos, las URL y JavaScript necesitan cada uno su propia codificación. Mejor usa un sistema de plantillas que escape automáticamente.
- ¿Se envía mi texto a un servidor?
- No. La codificación y decodificación ocurren por completo en tu navegador.