[英]using the correct encoding for sending special characters to people using outlook
我想知道我应该使用什么编码格式来向使用 Outlook 的人发送电子邮件中的特殊字符。 我已经完成了自己的研究并遇到了做事的方法,但没有一种对我有用。 我检查了 Outlook,似乎默认情况下,它使用西欧 (Windows) 格式,因此使用 Windows-1252 编码(如果我搜索和理解的内容是正确的)。 但是,当我尝试从 C# 中的 unicode 转换为 Windows-1252 编码时,我的 Outlook 仍然无法识别特殊字符是合法的。 例如在一些随机人的名字下面:
预期结果: Moné Rêve 先生
实际结果(错误): Moné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);
没有“正确”编码。 您应该在 HTML 中指定字符集。
这是从我收到的一封电子邮件中获取的(您可以使用例如 Outlook 从电子邮件中获取源):
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
当您在文档上设置编码时,您必须指定您使用的编码,否则接收者将不知道您使用的是哪种编码。 可以使用您希望使用的任何编码来读取编码的声明,因此可以在不知道编码的情况下读取编码。
阅读有关编码及其工作原理的内容: http : //www.joelonsoftware.com/printerFriendly/articles/Unicode.html
最后,我去检查字符串中的特殊字符并将特殊字符更改为它们的等效代码,例如 é 变为é
最好的方法是将它们转换为它们的 HTML 实体。 这是一个名为HTML 特殊字符转换器的工具,它可以帮助您将特殊字符转换为其 HTML 实体宽度,只需单击一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.