If your email or SMS shows weird symbols like é, ?, or empty boxes instead of accented letters, you're hitting a character encoding mismatch. The fix is to send everything in UTF-8, end to end.
The most common causes
- The HTML body is missing
<meta charset="UTF-8">. - The source file is saved in ANSI or ISO-8859-1 instead of UTF-8.
- Copy-paste from Word inserts smart quotes and en-dashes that break.
- Database fields are stored in the wrong collation.
- SMS body uses non-GSM-7 characters that get transliterated.
Step-by-step fix for emails
- Add
<meta charset="UTF-8">right after the<head>. - Save the HTML file as UTF-8 without BOM.
- Set the SMTP
Content-Typeheader totext/html; charset=UTF-8. - Re-send a test campaign to yourself in Gmail, Outlook and Apple Mail.
- If the issue persists, paste your text in a plain editor first to strip hidden bytes.
SMS-specific fix
- SMS uses GSM-7 by default (160 chars). Adding emojis or accented letters switches to UCS-2 (70 chars).
- Stay in GSM-7 to keep the message short, or accept UCS-2 and send in 70-char segments.
- Mailpro detects the encoding automatically and shows you the segment count before sending.
Send clean, well-encoded campaigns — try Mailpro free
Mailpro forces UTF-8 everywhere, validates HTML before sending, and previews how each client renders accents. Discover the editor · Deliverability hub
Related reading: