Codificación

HTML Entities Encode/Decode

Codificación y decodificación de entidades HTML — visualización segura de caracteres especiales en la página.

HTML entities are a way to write characters that would otherwise break markup (<, >, &) or have no keyboard key, as safe text sequences like &lt; or &amp;. This tool encodes and decodes such entities right in your browser.

How to use it

Common uses

Things to keep in mind

HTML entity escaping only protects against XSS via a page's text content — it does not protect a JavaScript context (innerHTML, eval) or href/src attributes containing unvalidated URLs.

Encode exactly at the point where text gets inserted into HTML, not ahead of time when saving to a database — otherwise the data gets mangled when reused outside an HTML context.

Artículo sobre esta herramienta: HTML Entities: cómo mostrar caracteres especiales de forma segura

Preguntas frecuentes

¿Qué diferencia hay entre entidades con nombre y numéricas?

Las entidades con nombre (como &amp;) son más legibles y solo existen para un conjunto definido de caracteres. Las numéricas, decimales (&#38;) o hexadecimales (&#x26;), pueden representar cualquier carácter Unicode, tenga o no un nombre asignado.

¿Cuándo debo usar la opción "Básicas" en vez de "Todos los caracteres"?

Básicas codifica solo los caracteres imprescindibles para no romper el marcado HTML (&, <, >, comillas). Todos los caracteres convierte además letras acentuadas, símbolos y cualquier carácter fuera del ASCII básico, útil si necesitas máxima compatibilidad.

¿Se procesa el HTML en un servidor?

No, todo el proceso ocurre en tu navegador; el texto o HTML que introduces nunca se envía a ningún servidor.

¿Hay que escapar el texto de un atributo de forma distinta al del cuerpo de la página?

Los caracteres principales (<, >, &) se escapan igual, pero dentro de un atributo entre comillas es crítico escapar además el tipo exacto de comilla que lo delimita; de lo contrario, el valor "se romperá" antes de lo esperado.

¿El escapado HTML protege frente a todos los tipos de XSS?

No. Cubre el vector más habitual —insertar texto en el contenido HTML—, pero no protege frente al XSS a través de contexto JavaScript (por ejemplo, innerHTML seguido de ejecución de código) ni frente a URLs no validadas en href/src.

Artículos: Codificación

Base64: para qué sirve la codificación y cómo funciona

Cómo Base64 convierte datos binarios en texto ASCII y cuándo esto realmente hace falta.

Base32: en qué se diferencia de Base64 y cuándo es más práctico

El alfabeto de Base32, que no distingue mayúsculas, y los casos donde resulta más práctico que Base64.

URL Encode/Decode: el percent-encoding en los enlaces

Cómo los caracteres especiales en direcciones y parámetros se convierten en secuencias %XX.

JWT: la estructura del token y qué significa "decodificar" un JWT

El header, el payload y la signature de un token JWT, y por qué decodificar no es lo mismo que verificar la firma.

Unicode Escape: qué significan las secuencias \uXXXX

De dónde salen las secuencias tipo \u0041 en JSON y cadenas JS, y qué significan.

ROT13 y el cifrado César: sustitución simple de caracteres

Por qué un desplazamiento de 13 letras hace que ROT13 sea su propio inverso, y por qué se sigue usando hoy.

Punycode: cómo funcionan los dominios internacionalizados en el DNS

Cómo un dominio con caracteres no latinos se convierte en una representación ASCII con el prefijo xn--.

Código Morse: cómo el texto se convierte en puntos y rayas

El principio de codificar letras con puntos y rayas, y dónde se usa el código Morse hoy en día.

Data URI: cuándo incrustar imágenes directamente en el código

Cómo un Data URI incrusta el contenido de un archivo directamente en HTML o CSS, y cuándo vale la pena.

Gzip + Base64: comprimir datos para transmitirlos como texto

Por qué los datos binarios comprimidos también se codifican en Base64 antes de meterlos en un campo de texto.

XML Entities: escapar caracteres en documentos XML

Las cinco entidades XML obligatorias sin las cuales el documento se rompe al analizarlo.