Codificar y decodificar entidades HTML
Convierte texto en entidades HTML, o convierte entidades como & y € de vuelta en los caracteres que representan.
Funciona en tu navegador; nada de lo que escribes sale de tu dispositivo
Pega texto para empezar.
Texto de hasta unos pocos millones de caracteres. La decodificación entiende todas las entidades con nombre que conoce tu navegador (la lista completa de HTML5) y los números decimales y hexadecimales; cada referencia necesita su punto y coma final. La decodificación es de un solo nivel: &lt; pasa a ser <, no <.
Cómo codificar y decodificar entidades HTML
- Elige Codificar o Decodificar y pega tu texto.
- Al codificar, elige si quieres codificar solo los caracteres inseguros, usar nombres como é donde existan, o usar números para todo lo que quede fuera de ASCII.
- Copia el resultado.
Qué son las entidades HTML
HTML asigna una función especial a unos pocos caracteres: el signo menor que abre una etiqueta, el ampersand abre una entidad y las comillas cierran el valor de un atributo. Para mostrar uno de esos caracteres como texto, escribes una entidad en su lugar: < para <, & para &. Las entidades también te permiten escribir caracteres difíciles de teclear o que una codificación de página antigua no puede contener, como é para é, € para € o 😀 para un emoji.
Una entidad empieza con un ampersand y termina con un punto y coma. Entre ambos va un nombre (copy), un número decimal tras # (#169) o un número hexadecimal tras #x (#xA9). Las tres formas escriben el signo de copyright. La codificación recorre tu texto carácter por carácter: los cinco caracteres inseguros siempre se convierten en entidades, y el resto depende de la opción que elijas, desde nada en absoluto hasta un número para cada carácter.
La decodificación lee cada referencia y la reemplaza por su carácter. Los números se convierten directamente, según las reglas de HTML: un número que sea cero, esté fuera de rango o sea un sustituto (surrogate) se convierte en el carácter de reemplazo, y los números del 128 al 159 se leen como caracteres Windows-1252, igual que hacen los navegadores. Los nombres los resuelve tu navegador, que conoce toda la lista de HTML5. La decodificación es de una sola pasada, así que &lt; pasa a ser < y no un simple signo menor que.
Consejos
- ¿Necesitas escapar un valor para una dirección web? Usa Codificar y decodificar URL.
- Ordena el marcado antes de escaparlo con el formateador de HTML.
- ¿No sabes por qué el texto se ve raro? Puede haber caracteres ocultos: compruébalo con el detector de caracteres invisibles.
Preguntas frecuentes
¿Qué caracteres hay que escapar en HTML?
Cinco: el signo menor que < (<), el signo mayor que > (>), el ampersand & (&), las comillas dobles " (") y la comilla simple ' ('). Escaparlos te permite mostrar código o texto introducido por un usuario como texto, sin que se interprete como marcado. La primera opción, Solo los caracteres inseguros, hace justo eso.
¿Cuál es la diferencia entre entidades con nombre y numéricas?
Una entidad con nombre usa una palabra corta, como é para é o € para €. Una numérica usa el punto de código Unicode, en decimal (é) o hexadecimal (é). Ambas dan el mismo carácter. Solo algunos caracteres tienen nombre; el resto necesita números.
¿Por qué codificar caracteres que no son ASCII?
Si una página o un correo no se sirve como UTF-8, las letras con acento y los símbolos pueden convertirse en basura. Las entidades son ASCII puro, así que sobreviven a cualquier codificación.
¿La decodificación cubre todas las entidades?
Sí. Las referencias decimales y hexadecimales se convierten directamente, y los nombres los busca el analizador HTML del propio navegador, que conoce la lista completa de HTML5 con más de dos mil nombres. Una referencia sin su punto y coma se deja como está, y lo mismo un nombre desconocido, que se muestra en una lista para que lo veas.
¿Codificar basta para evitar XSS?
Codificar los cinco caracteres inseguros es la solución correcta cuando colocas texto en el contenido de un elemento HTML o en el valor de un atributo entre comillas. No basta dentro de un script, un style, un atributo sin comillas o una URL, que necesitan su propio escape. Esta herramienta es para texto que pegas, no sustituye el escape de tu framework.
¿Se sube mi texto?
No. Todo ocurre en tu navegador y nada sale de tu dispositivo.