2011-05-23 51 views
0

我在想我应该用什么编码格式将电子邮件中的特殊字符发送给使用outlook的用户。我做了我自己的研究,并采用各种方式来做事情,但都没有为我工作。我查了前景,它似乎默认情况下,它使用西欧(Windows)格式,因此使用Windows-1252编码(如果我搜索和理解是正确的)。但是,当我试图从C#中的Unicode转换为Windows-1252编码时,我的Outlook仍然没有认识到特殊字符是合法的。例如,下面的一些素不相识的人的名字:使用正确的编码向使用outlook的用户发送特殊字符

预期的结果:MONE先生亮采

实际结果(错误):先生MONA©Rêve

谁能帮我,我应该采取什么办法使上述正确。

我的代码:

string Fullname = "Mr Moné Rêve"; 
Encoding unicode = new UnicodeEncoding(); 
Encoding win1252 = Encoding.GetEncoding(1252); 

byte[] input = unicode.GetBytes(Fullname);  
byte[] output = Encoding.Convert(unicode, win1252, input); 

string result = win1252.GetString(output); 

回答

0

最后,我去为我的字符串特殊字符检查和更改特殊字符到他们的代码相当于例如E变成é

+0

这将是HtmlEncoding – 2011-05-25 07:21:24

2

没有 “正确” 的编码。您应该在HTML中指定字符集。

这是从我收到的电子邮件采取(你可以使用例如前景从电子邮件获得源代码):

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> 

当你设置你必须指定什么编码的文件的编码你使用,否则接收者不会知道你使用了哪一个。编码的声明可以用您希望使用的任何编码读取,因此可以在不知道编码的情况下阅读编码。

阅读本关于编码和他们是如何工作的:http://www.joelonsoftware.com/printerFriendly/articles/Unicode.html

+0

谢谢您帮帮我。该链接提供了一些有关编码的详细信息。但是,在HTML meta charset不起作用。 – 2011-05-24 07:38:57

+0

@Zen你指定了与你使用的编码相同的编码吗? – 2011-05-24 07:42:34

+0

是的。窗口1252。 – 2011-05-25 03:11:24