使用正确的编码向使用outlook的人发送特殊字符

时间:2011-05-23 07:14:13

标签: c# asp.net encoding

我想知道我应该使用什么编码格式将电子邮件中的特殊字符发送给使用outlook的人。我已经完成了自己的研究并且有各种各样的方法来做事,但没有一个对我有用。我检查了outlook,它似乎默认情况下,它使用西欧(Windows)格式,因此使用Windows-1252编码(如果我搜索和理解的是正确的)。但是,当我尝试从C#中的unicode转换为Windows-1252编码时,我的前景仍然没有认识到特殊字符是合法的。以下是一些随机的人的名字:

预期结果:MonéRêve先生

实际结果(错误):MrMoné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);  

3 个答案:

答案 0 :(得分:2)

没有“正确”编码。您应该在HTML中指定charset。

这取自我收到的电子邮件(您可以使用例如outlook获取电子邮件中的来源):

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

在文档上设置编码时,必须指定使用的编码,否则接收方将不知道您使用的编码。可以使用您希望使用的任何编码来读取编码声明,因此可以在不知道编码的情况下读取编码。

请阅读有关编码及其工作原理的信息:http://www.joelonsoftware.com/printerFriendly/articles/Unicode.html

答案 1 :(得分:1)

最后,我去检查我的字符串中的特殊字符,并将特殊字符更改为相应的代码,例如é变为&#233;

答案 2 :(得分:0)

最好的方法是将它们转换为HTML实体。这是一个名为HTML Special Character Converter的工具,它将帮助您只需单击一下即可将特殊字符转换为其HTML实体宽度。