2009-04-11 18 views
7

各种电子邮件客户端支持UTF-8的情况如何?电子邮件支持UTF-8的效果如何?

我知道这是五年前的某个问题 - 但它仍然是我们应该担心的事情吗?

我想知道在发送之前是否应该将字符串重新编码为其他编码。例如,俄文文本将以UTF-8格式存储,但在发送电子邮件通知时,我可以将其重新编码为ISO-8859-5。

回答

8

这里几乎所有的电子邮件客户端的comparison以及是否支持UTF-8

另外,维基百科说:

互联网邮件联盟(IMC) 建议所有的电子邮件程序是 能够使用UTF-8使用 来显示和创建邮件。

但是,如果您愿意,您还可以发送多种格式的电子邮件。

+0

不幸的是,比较不包括旧版本。 – 2012-08-22 09:49:34

3

我发现UTF-8的唯一问题是日本,至少在几年前,许多Web邮件服务和旧的移动设备仍然无法顺利应对。这有点令人难过,特别是当本地多字节编码(Shift-JIS,ISO-2022-JP等)均匀糟糕时。

其他具有多字节字符集的东亚国家也可能受到影响。

0

今天,当重新编​​码俄罗斯UTF-8文本为ISO-8859-5时,冒着新的UTF-8俄罗斯卢布货币字符U + 20BD RUBLE SIGN的风险。这与ISO-8859-1(Latin1)中的欧元货币字符支持是同样的问题,我的意思是没有支持。 我发现这些文章对国际字符非常有帮助的电子邮件支持 http://kb.mailchimp.com/accounts/management/international-characters-in-mailchimp https://wordtothewise.com/2010/03/which-is-better-utf-8-or-iso/

这里是用代码页ISO-8859-5和俄罗斯卢布的货币字符问题的一个C#代码示例:

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)); 
    } 
} 

}

相关问题