todas las guías

// cómo solucionarlo

Caracteres raros: soluciona los problemas de codificación y charset (UTF-8)

Si los acentos se convierten en «Ã©» o en signos de interrogación, el email no declara bien la codificación de su texto. Usa UTF-8 en todas partes y decláralo.

Qué significa

Los ordenadores guardan las letras como números. La tabla que relaciona números y letras se llama codificación de caracteres, o charset. El estándar moderno, que cubre todos los idiomas y los emojis, es UTF-8. Los antiguos, como ISO-8859-1 o Windows-1252, solo cubren las letras de Europa occidental.

Cuando un email se escribe en una codificación pero se anuncia en otra, las letras con acentos salen mal. Por ejemplo «Café» se convierte en Café, y «€» en € o en un signo de interrogación.

Por qué importa

  • Un texto con caracteres raros parece descuidado, y los lectores pueden pensar que el email es una estafa.
  • Los filtros antispam detectan los asuntos mal codificados, la falta de declaración del charset y los caracteres extraños. SpamAssassin tiene reglas para ello.
  • Un asunto roto es lo primero que ve el lector.

Cómo comprobarlo

  • Envía un email de prueba: en la página de inicio, copia tu dirección de prueba única, envíale un email normal desde el buzón o la herramienta que quieres comprobar y abre el informe. Mira el asunto y la sección «Texto del mensaje»: los acentos y los símbolos deberían verse correctamente. Abre la sección «Cabeceras sin procesar» y busca la línea Content-Type, y revisa en las reglas de SpamAssassin si hay alguna sobre el charset o la codificación.

Una cabecera correcta se ve así:

Content-Type: text/html; charset=UTF-8

Un asunto con acentos debería estar codificado, por ejemplo:

Subject: =?UTF-8?B?Q2Fmw6kgZGUgUGFyaXM=?=

Parece raro, pero es normal: los buzones lo decodifican y muestran «Café de Paris».

Cómo solucionarlo

  1. Usa UTF-8 en todas partes. En los ajustes de tu herramienta de newsletters, tu web, tu tienda o tu CRM, elige UTF-8 como codificación de los emails si hay opción.
  2. Guarda las plantillas en UTF-8. Si editas plantillas HTML en un editor de texto, guarda el archivo como «UTF-8». Evita «ANSI» u «Occidental».
  3. Decláralo también en el HTML, dentro del head de la plantilla: <meta charset="UTF-8">.
  4. Revisa tu base de datos y tu web. Si los nombres o los textos vienen de una base de datos (nombres de clientes, nombres de productos), también debe guardar el texto en UTF-8. Si no, el texto ya está roto antes de llegar al email.
  5. Para desarrolladores: usa una librería de email conocida (como PHPMailer, nodemailer o el paquete email de Python) y configura el charset en UTF-8. No construyas las cabeceras del email a mano: los asuntos y los nombres con acentos deben codificarse como se muestra arriba.
  6. Evita copiar y pegar desde Word. Trae comillas «tipográficas» y caracteres ocultos. Pega como texto sin formato y luego da formato en tu herramienta.

Síntomas y causas habituales

  • é, è: texto en UTF-8 anunciado como ISO-8859-1 o Windows-1252.
  • ? o un rombo negro: texto en una codificación antigua anunciado como UTF-8.
  • Código =?UTF-8? en bruto visible en el asunto: la codificación está mal formada.

Comprueba que está solucionado

Envía un nuevo email de prueba desde la página de inicio con acentos, el símbolo del euro y un apóstrofo, tanto en el asunto como en el texto. El informe debería mostrarlos correctamente, la cabecera Content-Type debería indicar charset=UTF-8, y no debería aparecer ninguna regla de codificación en la lista de SpamAssassin.

Comprueba que está solucionado

Un cambio de DNS puede tardar de unos minutos a unas horas. Después, envía un nuevo email de prueba o vuelve a escanear tu dominio.

Guías relacionadas