How well is UTF-8 supported in email?

How well is UTF-8 supported in various email clients?

I know that this was a problem about five years ago - but still we need to worry?

I am wondering if the lines should be transcoded to another encoding before sending. For example, the Russian text will be stored as UTF-8, but when sending notifications by email, I could simply transcode it on the fly as ISO-8859-5.

+7
email utf-8
source share
3 answers

Here is a comparison of just about every email client and whether it supports UTF-8

Plus, wikipedia says:

The Internet Mail Consortium (IMC) recommends that all email programs display and create mail using UTF-8.

But you can also send email in several formats if you wish.

+8
source share

The only place I found where UTF-8 could be problematic is Japan, where at least a couple of years ago many email services and old mobile devices still couldn't handle it smoothly. This is a little sad, especially when native multibyte encodings (Shift-JIS, ISO-2022-JP, etc.) are uniformly terrible.

Other East Asian countries with multibyte character sets may also be affected.

+3
source share

Today, when the conversion of the Russian text of UTF-8 as ISO-8859-5, it is a risk to crack the new dollar symbol UTF-8 in ruble currency U + 20BD RUBLE SIGN. This is the same problem with the support of the euro symbol in ISO-8859-1 (Latin1) that I do not mean. I found these articles very useful for supporting international characters in the email http://kb.mailchimp.com/accounts/management/international-characters-in-mailchimp https://wordtothewise.com/2010/03/which-is- better-utf-8-or-iso /

Here is an example C # code for a problem with an ISO-8859-5 code page and a ruble currency symbol:

using System; using System.Text; namespace ConsoleApplication4 { class Program { static void Main(string[] args) { string russian_text = "  co    ₽"; Console.OutputEncoding = Encoding.UTF8; Console.WriteLine(russian_text); var encoded_bytes = Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding("ISO-8859-5"), Encoding.UTF8.GetBytes(russian_text)); Console.OutputEncoding = Encoding.GetEncoding("ISO-8859-5"); Console.WriteLine(Encoding.GetEncoding("ISO-8859-5").GetString(encoded_bytes)); } } 

}

0
source share

All Articles