toutes les fiches

// comment corriger

Caractères illisibles : corriger les problèmes d'encodage et de charset (UTF-8)

Des accents qui deviennent « é » ou des points d'interrogation signifient que l'email ne déclare pas correctement l'encodage de son texte. Utilisez UTF-8 partout et déclarez-le.

Ce que ça veut dire

Les ordinateurs stockent les lettres sous forme de nombres. La table qui relie les nombres aux lettres s'appelle l'encodage des caractères, ou charset. Le standard moderne, qui couvre toutes les langues et les emojis, est l'UTF-8. Les plus anciens, comme ISO-8859-1 ou Windows-1252, ne couvrent que les lettres d'Europe de l'Ouest.

Quand un email est écrit dans un encodage mais annoncé dans un autre, les lettres accentuées s'affichent mal. Par exemple « Café » devient Café, et « € » devient € ou un point d'interrogation.

Pourquoi c'est important

  • Un texte illisible paraît négligé, et les lecteurs peuvent croire que l'email est une arnaque.
  • Les filtres anti-spam remarquent les objets mal encodés, les déclarations de charset manquantes et les caractères étranges. SpamAssassin a des règles pour ça.
  • Un objet cassé est la première chose que le lecteur voit.

Comment vérifier

  • Envoyez un email de test : sur la page d'accueil, copiez votre adresse de test unique, envoyez-lui un email normal depuis la boîte ou l'outil que vous voulez vérifier, puis ouvrez le rapport. Regardez l'objet et la section « Texte du message » : les accents et les symboles doivent s'afficher correctement. Ouvrez la section « En-têtes bruts » et cherchez la ligne Content-Type, puis vérifiez dans les règles SpamAssassin s'il y a quelque chose sur le charset ou l'encodage.

Un en-tête correct ressemble à ceci :

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

Un objet avec des accents doit être encodé, par exemple :

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

Ça paraît étrange, mais c'est normal : les messageries le décodent et affichent « Café de Paris ».

Comment corriger

  1. Utilisez UTF-8 partout. Dans les réglages de votre outil de newsletter, de votre site, de votre boutique ou de votre CRM, choisissez UTF-8 comme encodage des emails s'il y a un choix.
  2. Enregistrez les modèles en UTF-8. Si vous modifiez des modèles HTML dans un éditeur de texte, enregistrez le fichier en « UTF-8 ». Évitez « ANSI » ou « Occidental ».
  3. Déclarez-le aussi dans le HTML, dans le head du modèle : <meta charset="UTF-8">.
  4. Vérifiez votre base de données et votre site. Si des noms ou du texte viennent d'une base de données (noms de clients, noms de produits), elle doit aussi stocker le texte en UTF-8. Sinon, le texte est déjà cassé avant d'arriver dans l'email.
  5. Pour les développeurs : utilisez une bibliothèque d'emails reconnue (comme PHPMailer, nodemailer ou le package email de Python) et réglez le charset sur UTF-8. Ne construisez pas les en-têtes à la main : les objets et les noms avec accents doivent être encodés comme montré plus haut.
  6. Évitez le copier-coller depuis Word. Il apporte des guillemets « typographiques » et des caractères cachés. Collez en texte brut, puis mettez en forme dans votre outil.

Symptômes et causes courants

  • é, è : texte UTF-8 annoncé comme ISO-8859-1 ou Windows-1252.
  • ? ou un losange noir : texte dans un ancien encodage annoncé comme UTF-8.
  • Code =?UTF-8? brut visible dans l'objet : l'encodage est mal formé.

Vérifiez que c'est corrigé

Envoyez un nouvel email de test depuis la page d'accueil avec des accents, le signe euro et une apostrophe dans l'objet et dans le texte. Le rapport doit les afficher correctement, l'en-tête Content-Type doit mentionner charset=UTF-8, et aucune règle d'encodage ne doit apparaître dans la liste SpamAssassin.

Vérifiez que c'est corrigé

Une modification DNS peut prendre de quelques minutes à quelques heures. Ensuite, envoyez un nouvel email de test ou scannez à nouveau votre domaine.

Fiches liées