Codificar / decodificar entidades HTML
CodificaciónCodifica y decodifica entidades HTML — nombradas, decimales y hexadecimales.
En esta página
¿Qué es la codificación de entidades HTML?#
HTML da un significado especial a un puñado de caracteres: < y > delimitan etiquetas, & inicia una entidad o una referencia de carácter, y " y ' entrecomillan valores de atributo. Siempre que quieras que uno de esos caracteres aparezca como texto literal en una página —mostrar a los usuarios el fuente de un fragmento de código, devolver la entrada de búsqueda a un campo, mostrar la cadena Tom & Jerry— tienes que sustituirlo por un sustituto llamado entidad. Esa sustitución es la codificación de entidades HTML.
Hay tres formas de escribir el mismo escape, y esta herramienta ofrece las tres mediante el selector Opciones:
- Nombradas:
&se convierte en&,<en<, etc. Legibles para humanos, y la única forma que la gente normalmente escribe a mano. En este modo solo se escapan los cinco caracteres estructuralmente peligrosos; todo lo demás pasa intacto. - Decimales: todo carácter no ASCII o de control se convierte en
&#N;, dondeNes su punto de código Unicode en decimal (por ejemplo,©se convierte en©). Útil cuando quieres que cada byte no estándar sea visible y seguro en ASCII. - Hexadecimales: la misma idea con puntos de código hexadecimales:
©se convierte en©. Compacto y se alinea de forma natural con la notación de punto de código que se ve en las tablas Unicode.
La decodificación reconoce las entidades nombradas en un subconjunto curado de HTML5, además de &#NN; (decimal) y &#xHH; (hex). Una entidad nombrada no reconocida se deja exactamente como está, en lugar de adivinarla: más seguro que emitir el carácter equivocado en silencio.
Cómo usarlo#
- Elige Codificar o Decodificar en el conmutador de la parte superior izquierda.
- En Opciones, elige Nombradas, Decimales o Hexadecimales.
- Pega en el panel de Entrada a la izquierda.
- Lee el resultado escapado (o desescapado) del panel de Salida a la derecha y pulsa Copiar.
- Ejemplo carga una cadena de demostración; Limpiar reinicia los paneles.
Características principales#
- Tres estilos de escape desde un único selector. Alterna entre nombradas, decimales y hexadecimales sin volver a pegar, lo que hace trivial comparar la salida.
- Correcto con caracteres astrales. La iteración es por punto de código Unicode, no por unidad de código UTF-16, así un emoji como
🌍se trata como un único carácter (🌍), no como un par roto de suplentes. - Decodificador curado y seguro. El mapa de entidades nombradas cubre las referencias HTML5 habituales (copyright, marca registrada, letras acentuadas, símbolos matemáticos, comillas y guiones). Los nombres desconocidos pasan intactos en lugar de estropearse.
- Sin intervención del DOM. La codificación y la decodificación son operaciones puras de cadena, sin inyección de ningún
<div>oculto, así la lógica es totalmente testeable y no hay riesgo de que la herramienta misma interprete tu entrada como marcado.
Ejemplo detallado#
Toma un fragmento que mezcla marcado con un símbolo literal:
<a href="x">Tom & Jerry</a> © 2026
En modo Nombradas, solo se escapan los cinco caracteres peligrosos y el © queda intacto (no es estructuralmente peligroso):
<a href="x">Tom & Jerry</a> © 2026
Cambia a Decimales y el © pasa también a su punto de código, mientras los caracteres centrales adoptan la forma numérica:
<a href="x">Tom & Jerry</a> © 2026
En modo Hexadecimales los mismos caracteres aparecen como puntos de código hexadecimales:
<a href="x">Tom & Jerry</a> © 2026
La decodificación invierte los tres: pega cualquiera de las tres salidas de vuelta con Decodificar y recuperas el fragmento original, incluido el ©.
Preguntas frecuentes#
¿Qué modo debo usar para que una cadena sea segura dentro de HTML?#
Nombradas es casi siempre el valor por defecto correcto para los cinco caracteres peligrosos: es legible, lo entiende cualquier navegador y mantiene la salida apta para diffs. Acude a Decimales o Hexadecimales cuando necesites específicamente que cada carácter no ASCII quede seguro en ASCII (por ejemplo, preparar contenido para un transporte que rechaza bytes altos), no para un escapado ordinario.
Decodifiqué © pero un nombre raro como &mytag; salió sin cambios. ¿Por qué?#
El decodificador solo resuelve entidades que conoce de verdad: un subconjunto curado de HTML5 con los nombres comunes. &mytag; no es una entidad HTML real, así que la herramienta lo deja intacto en lugar de adivinar o descartarlo. Si de verdad necesitas que se resuelva cada entidad definida por un DTD, estás fuera del alcance de un conversor de cadenas y dentro del análisis HTML real.
¿El escapado HTML basta para hacer segura la entrada de usuario en una cadena de JavaScript o en una URL?#
No. Cada contexto tiene sus propias reglas. El escapado HTML protege contra inyectar marcado, pero una cadena como '); alert(1); // es inofensiva en HTML y peligrosa dentro de un <script>. La misma entrada también necesita codificación de URL antes de ir en un enlace. Escapa para el contexto de destino, no solo una vez.
¿Por qué la salida hexadecimal usa letras minúsculas (© y no ©)?#
El hex minúsculo es la forma convencional y más aseada, y todo navegador lo analiza igual. Si necesitas mayúsculas por una guía de estilo, el modo decimal (©) evita la pregunta por completo, o pasa la salida por tu propia transformación de mayúsculas y minúsculas.