HTML da un significado especial a unos pocos caracteres. El signo menor que abre una etiqueta, el ampersand inicia una entidad y las comillas delimitan los valores de los atributos. Para mostrar esos caracteres como texto, los escribes como entidades.
Cómo es una entidad
Una entidad empieza con & y termina con ;. Entre ambos hay un nombre o un número:
- Con nombre:
&para&,<para<,>para>,"para una comilla doble y©para el símbolo de copyright. - Numérica decimal:
©es el mismo símbolo, escrito con su punto de código. - Numérica hexadecimal:
©es otra vez lo mismo en hexadecimal.
Las tres producen el mismo carácter. Las formas numéricas sirven para cualquier carácter Unicode, incluso los que no tienen nombre.
Los caracteres que debes escapar
En el contenido de texto, escapa siempre & y <. En los valores de atributos, escapa además la comilla con la que envolviste el valor (" o '). Escapar > no es estrictamente obligatorio en el texto, pero es habitual y no hace daño. Un < sin escapar en el texto puede leerse como el inicio de una etiqueta, y un & sin escapar seguido de letras puede interpretarse como una entidad.
¿Necesito codificar las letras con acento?
No, si tu página se sirve como UTF-8 y el archivo se guarda en UTF-8, que es la opción moderna por defecto. Entonces café y € pueden escribirse directamente. Codificarlos como é y € sigue siendo válido y útil cuando debes mantener el código fuente en ASCII puro, por ejemplo en algunas plantillas de correo o sistemas antiguos.
Espacios especiales
es un espacio de no separación que evita un salto de línea y no se colapsa con los vecinos. Úsalo con moderación para maquetar. Prefiere CSS para el espaciado.
Decodificación
Decodificar revierte el proceso: &lt; pasa primero a < y, si se repite, a <. Decodifica solo una vez por capa, de lo contrario produces un carácter que debía quedarse como texto.
Preguntas frecuentes
¿Es seguro '? Es válido en HTML5, pero HTML 4 no lo definía. ' funciona en todas partes.

