// how to fix
Garbled characters: fix encoding and charset problems (UTF-8)
Accents turning into "é" or question marks mean the email does not declare its text encoding correctly. Use UTF-8 everywhere and declare it.
What it means
Computers store letters as numbers. The table that links numbers to letters is called the character encoding, or charset. The modern standard, which covers every language and emoji, is UTF-8. Older ones, like ISO-8859-1 or Windows-1252, only cover Western European letters.
When an email is written in one encoding but announced as another, letters with accents come out wrong. For example "Café" becomes Café, and "€" becomes € or a question mark.
Why it matters
- Garbled text looks careless, and readers may think the email is a scam.
- Spam filters notice badly encoded subjects, missing charset declarations and strange characters. SpamAssassin has rules for them.
- A broken subject line is the first thing the reader sees.
How to check
- Send a test email: on the home page, copy your unique test address, send it a normal email from the mailbox or tool you want to check, then open the report. Look at the subject and the "Message text" section: accents and symbols should appear correctly. Open the "Raw headers" section and look for the
Content-Typeline, and check the SpamAssassin rules for anything about charset or encoding.
A correct header looks like this:
Content-Type: text/html; charset=UTF-8
A subject with accents should be encoded, for example:
Subject: =?UTF-8?B?Q2Fmw6kgZGUgUGFyaXM=?=
This looks strange, but it is normal: mailboxes decode it and show "Café de Paris".
How to fix it
- Use UTF-8 everywhere. In your newsletter tool, website, shop or CRM settings, choose UTF-8 as the email encoding if there is a choice.
- Save templates as UTF-8. If you edit HTML templates in a text editor, save the file as "UTF-8". Avoid "ANSI" or "Western".
- Declare it in the HTML too, inside the head of the template:
<meta charset="UTF-8">. - Check your database and website. If names or text come from a database (customer names, product names), it must also store text in UTF-8. Otherwise the text is already broken before it reaches the email.
- For developers: use a well-known email library (such as PHPMailer, nodemailer or Python's email package) and set the charset to UTF-8. Do not build email headers by hand: subjects and names with accents must be encoded as shown above.
- Avoid copy-paste from Word. It brings "smart" quotes and hidden characters. Paste as plain text, then format in your tool.
Common symptoms and causes
é,è: UTF-8 text announced as ISO-8859-1 or Windows-1252.?or a black diamond: old encoding text announced as UTF-8.- Raw
=?UTF-8?code visible in the subject: the encoding is malformed.
Check that it is fixed
Send a new test email from the home page with accents, the euro sign and an apostrophe in both the subject and the text. The report should display them correctly, the Content-Type header should mention charset=UTF-8, and no encoding rule should appear in the SpamAssassin list.
Check that it is fixed
DNS changes can take from a few minutes to a few hours. Then send a new test email or scan your domain again.
Related guides
- Add a List-Unsubscribe header (one-click unsubscribe)The List-Unsubscribe header lets Gmail, Yahoo and Outlook show an Unsubscribe button next to your sender name. Bulk senders must offer it in one click.
- Email forwarding breaks SPF: how DKIM and ARC helpWhen someone forwards your email automatically, SPF fails because the forwarding server is not yours. A valid DKIM signature, and ARC on the forwarder, keep it trusted.
- Contact form emails sent "From" the visitor's addressA website form that puts the visitor's email in the From field fails SPF and DMARC. Send from your own address and put the visitor in Reply-To instead.
- Links that hurt deliverabilityURL shorteners, link text that shows one address but points to another, and links to blacklisted domains are classic spam signs. Use plain links to your own domain.
- Image-only emails and missing plain-text versionAn email that is one big image, or that has no plain-text version, looks like spam to filters. Use real text, a few images, and send both HTML and plain text.