C# 使用C.Net将名片发送到Outlook

C# 使用C.Net将名片发送到Outlook,c#,.net,character-encoding,outlook,vcf-vcard,C#,.net,Character Encoding,Outlook,Vcf Vcard,我有一个特定的要求,即使用C.Net将用户联系方式作为名片发送到Outlook,它工作得非常好,可以将名片发送到Outlook,但是当用户名为unicode格式时,会遇到问题 样本-1: -用户名:疯狂 -它工作完美,能够在outlook上查看用户名而不出现任何问题 样本2: -用户名:Müller -它发送名片,但在outlook上显示为Müller。 使用的逻辑是: 详细信息将写入.vcf文件文本文件 该文件将附在邮件中。 代码示例: System.IO.StreamWriter Stre

我有一个特定的要求,即使用C.Net将用户联系方式作为名片发送到Outlook,它工作得非常好,可以将名片发送到Outlook,但是当用户名为unicode格式时,会遇到问题

样本-1: -用户名:疯狂 -它工作完美,能够在outlook上查看用户名而不出现任何问题

样本2: -用户名:Müller -它发送名片,但在outlook上显示为Müller。 使用的逻辑是:

详细信息将写入.vcf文件文本文件 该文件将附在邮件中。 代码示例: System.IO.StreamWriter StreamWriter=新的System.IO.StreamWriterfilePath; streamWriter.writemsgsstr; streamWriter.Close; streamWriter.Dispose

Attachment _mailAttachment=新的AttachmentfilePath; _mailAttachment.ContentDisposition.Inline=true; mailMessage.Attachments.Add_mailAttachment; client.SendmailMessage

即使在写入文件时尝试对内容进行编码,也无济于事

如果有任何帮助,我如何解决unicode格式化的问题

Vcard内容示例: 开始:VCARD 版本:2.1 N字符集=UTF-8;语言=en:Müller;亚力山大 FN;字符集=字符集=UTF-8;语言=en:Müller Alexander 组织机构:CEF公司发展办公室 职位:服务经理 完:VCARD


但名称仍然显示为Müller,Alexander?

您需要为具有unicode字符的字段指定字符集

CHARSET=utf-8
例如:

N;CHARSET=utf-8:Müller

您可以看看.Net vCard生成库。它支持您正在尝试做的事情。此外,您还必须记住,通常vCard文件必须编码为ASCII,因此您可能需要将其转换为类似于QUOTED-PRINTABLE的ASCII格式才能工作。

您的意思是什么?我不应该在这里提问吗?尝试将您的样本复制/粘贴到记事本并保存为vcf。为我工作。也许你可以试试这个,如果可以的话,用binary diff检查一下,文件之间有什么不同。你使用的是哪个版本的Outlook?问题可能就出在这个版本上。展望2003年,也许是07年?默认情况下似乎不支持unicode,但我认为有一个解决方法。+1建议将UTF-8字符串转换为QUOTED-PRINTABLE。OP应该试试这个。