Por qué un texto muestra «&» y cómo corregirlo
Publicado el · Actualizado el 3 min de lectura
Seguramente ha visto un texto mostrar «Tom & Jerry» en lugar de «Tom & Jerry» en un sitio, en un correo o en una ficha de producto. No es una avería: una entidad HTML se ha codificado una vez de más. Esta guía explica de dónde viene el problema y cómo corregirlo.
Qué es una entidad HTML
En el código de una página web, algunos caracteres tienen un papel especial: el «&» inicia una entidad y los signos «<» y «>» rodean las etiquetas. Para mostrar esos caracteres tal cual, se sustituyen por una serie de signos llamada entidad. Cinco son habituales.
| Carácter | Entidad |
|---|---|
| & | & |
| < | < |
| > | > |
| " | " |
| ' (apóstrofo recto) | ' |
De dónde viene la doble codificación
Un texto pasa a veces por dos sistemas que codifican cada uno: un editor y después una plantilla de página. Cada paso transforma el «&» de la entidad anterior. Con Entidades HTML, codificar «Tom & Jerry» da «Tom & Jerry» y codificar ese resultado da «Tom &amp; Jerry».
| Paso | Texto obtenido |
|---|---|
| Texto original | Tom & Jerry |
| Codificado una vez | Tom & Jerry |
| Codificado dos veces | Tom &amp; Jerry |
El navegador decodifica un nivel al mostrar. Un texto codificado dos veces se muestra, por tanto, con «&» en lugar de «&».
Decodificar un nivel cada vez
La herramienta quita un solo nivel de entidades en cada pasada. Si el resultado todavía contiene entidades, el modo «Ambos» lo señala y usted vuelve a lanzar la decodificación sobre el resultado.
| Texto | Primera decodificación | Segunda decodificación |
|---|---|---|
| Tom &amp; Jerry | Tom & Jerry | Tom & Jerry |
| &lt;b&gt;gras&lt;/b&gt; | <b>gras</b> | <b>gras</b> |
Decodificar un solo nivel evita deshacer una codificación deseada: un ejemplo de código que debe mostrar «&» en pantalla se escribe «&amp;» en la página.
Los acentos y los símbolos
La decodificación entiende todas las entidades con nombre terminadas en punto y coma, no solo las cinco habituales. «café à 5 € © 2026» da «café à 5 € © 2026», y el espacio de no separación pasa a ser un verdadero espacio de no separación. También se decodifican las entidades numéricas: «été» da «été» y «😀», igual que «😀», dan el mismo emoji.
Lo que la herramienta deja intacto
- Una entidad desconocida como «&inconnue;» se deja tal cual.
- Una entidad sin punto y coma final, como «&» o «<» dentro de una frase, no se toca.
- Una dirección con parámetros, como «https://exemple.fr/?a=1¶m=2©=4», se mantiene exacta: «¶m» y «©» no se toman allí por entidades.
Codificar código para mostrarlo
Para mostrar un fragmento de código en una página, codifíquelo una vez. El texto «<a href="x">l’été & plus</a>» da «<a href="x">l'été & plus</a>». Las letras acentuadas no se codifican, solo los cinco caracteres reservados.
Evitar el problema
Codifique una sola vez, en el último momento, cuando el texto se escribe en la página. Para reemplazar en masa los restos de una mala codificación, conviene Buscar y reemplazar. Las direcciones web siguen otra codificación, explicada en Base64, huella y dirección codificada, no las confunda.
Dónde aparece el problema
En una ficha de producto, un título de página, un correo automático o un campo importado de otro sitio: un «&» pasa a ser «&» cuando el texto se codifica dos veces.
Comprobar el resultado
- Vuelva a lanzar la decodificación mientras la herramienta señale entidades restantes.
- Compare con el texto original en pantalla.
- Compruebe los espacios de no separación y los emoji.
Preguntas frecuentes
- ¿Por qué mi texto muestra «&»?
- Una entidad HTML se ha codificado una vez de más. El navegador decodifica un nivel al mostrar y el segundo sigue visible.
- ¿Cómo corregirlo?
- Decodifique un nivel cada vez con la herramienta, hasta que deje de señalar entidades.
- ¿Decodifica la herramienta los acentos?
- Sí, todas las entidades con nombre terminadas en punto y coma, y las entidades numéricas.
- ¿Cómo evitar el problema?
- Codifique una sola vez, en el último momento, cuando el texto se escribe en la página.
