-3

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

Sample-1:
- UserName : Crazy
- 它完美地工作并且能够在 Outlook 上查看用户名而没有任何问题。

示例 2:
- 用户名:Müller
- 它发送名片,但在 Outlook 上显示为“Müller”。

使用的逻辑是:

  1. 详细信息将写入 .vcf 文件(文本文件)
  2. 该文件将附在邮件中。

代码示例
System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(filePath);
streamWriter.Write(msgStr);
streamWriter.Close();
streamWriter.Dispose();

附件 _mailAttachment = 新附件(文件路径);
_mailAttachment.ContentDisposition.Inline = true;
mailMessage.Attachments.Add(_mailAttachment);
client.Send(mailMessage);

甚至尝试在写入文件时对内容进行编码,但无济于事。

任何帮助,我该如何解决 unicode 格式的问题?

Vcard 内容示例:
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;LANGUAGE=en:Müller;Alexander
FN;CHARSET=CHARSET=UTF-8;LANGUAGE=en:Müller Alexander
ORG:CEF Corporate Development Office
TITLE:Service经理
END:VCARD

但是这个名字仍然显示为“Müller, Alexander”?

4

2 回答 2

1

您可以在此处查看 .Net vCard 生成库。它支持你正在尝试做的事情。此外,您必须记住,通常 vCard 文件必须编码为 ASCII,因此您可能必须转换为 ASCII(如 QUOTED-PRINTABLE)才能使其工作。

于 2013-04-06T00:45:42.403 回答
0

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

CHARSET=utf-8

例如:

N;CHARSET=utf-8:Müller
于 2011-11-03T14:30:39.167 回答