How do I handle different character sets (e.g., Unicode)?
Still have a question, spotted an error, or have a better explanation or a source we should cite?
If you've got subscribers with names like François, 田中, or حسن, your email might be turning them into question marks or gibberish. That's a character set problem, and it's fixable.
So The solution is UTF-8 encoding. It's a universal standard that handles every modern language. Latin, Cyrillic, Arabic, Chinese, Japanese, emoji, you name it. You declare it in two places: your email headers and your HTML. In headers, you'd set Content-Type: text/html; charset=UTF-8. In your HTML, add <meta charset="UTF-8"> near the top. That's it. There's no reason to use older encodings like ISO-8859-1 anymore.
But The tricky part is consistency across your whole pipeline. Your database stores data in UTF-8, your application processes it in UTF-8, your ESP sends it in UTF-8. A mismatch anywhere produces garbled text (called mojibake). it's that corrupted jumble you sometimes see in emails. Your headers control how the receiving system interprets the message, so getting them right is essential. Test with real subscriber names, not just ASCII stand-ins. If François's name shows up correctly in your test send, you're good. HTML email with proper UTF-8 declaration ensures international recipients see their names and content as intended.
Contributors
Who worked on this answer
Every name links to their profile. Every company links to their site. Real people, real accountability.