我需要向 iPhone 用户发送包含 .vcf 文件的电子邮件以添加联系人。问题是联系人姓名包含元音变音符号,并且显示不正确。 我还注意到,如果我在电子邮件正文中发送相同的文本或在记事本中打开组成的 vcf 文件,符号将正确显示。
public void SendEmail(string to, string subject, string body)
{
using (var message = new MailMessage())
{
message.To.Add(new MailAddress(to));
message.Subject = subject;
message.SubjectEncoding = Encoding.UTF8;
message.BodyEncoding = Encoding.UTF8;
message.HeadersEncoding = Encoding.UTF8;
using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(body)))
{
string attachamentName = string.Format("{0}.vcf", subject);
Attachment attachment = new Attachment(stream, MediaTypeNames.Application.Octet) { Name = attachamentName };
attachment.ContentDisposition.DispositionType = DispositionTypeNames.Attachment;
message.Attachments.Add(attachment);
using (var client = new SmtpClient())
{
client.Send(message);
}
}
}
}
有人可以帮我吗?
更新:抱歉,必须编辑代码示例,我不小心提交了错误的代码。
更新 #2:看来这不仅仅是 iPhone 的问题,Outlook 也无法识别变音符号。
更新#3:添加了发送电子邮件的完整代码
最佳答案
尝试更改为:
BEGIN:VCARD\r\nVERSION:2.1\r\nN;CHARSET=LATIN1:Fältskog;Agnetha\r\nFN;CHARSET=LATIN1:Agnetha Fältskog\r\nORG:\r\nTITLE:\r\nEND:VCARD
刚刚从其他地方阅读 - 看起来格式需要这个 CHARSET
每个字段上的标签,似乎 LATIN1
或iso-8859-1
字符集,而不是 utf-8
需要指定这些。
关于c# - iPhone v 卡中的变音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22506003/