2011-11-03 36 views
-3

我有一个具体的要求,将用户联系人详细信息作为名片发送到Outlook使用C#.Net,它完美的作品,并发送名片到Outlook但面临的问题,当用户名称采用unicode格式。发送名片到Outlook使用C#.Net

样品1:
- 用户名:疯狂
- 它完美,并且能够查看用户名,而不对后市的任何问题。

样品-2:
- 用户名:穆勒
- 它发出的名片但是它被显示为 “Müller” 的前景。

使用的逻辑是:

  1. 细节将被写入
  2. 该文件将在邮件被附着.vcf文件(文本文件)。

代码示例
System.IO.StreamWriter的StreamWriter =新System.IO.StreamWriter(文件路径);
streamWriter.Write(msgStr);
streamWriter.Close();
streamWriter.Dispose();

附件_mailAttachment = new Attachment(filePath);
_mailAttachment.ContentDisposition.Inline = true;
mailMessage.Attachments.Add(_mailAttachment);
client.Send(mailMessage);

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

任何帮助,如何解决unicode格式化问题?

样品维卡内容:
BEGIN:VCARD
VERSION:2.1
N; CHARSET = UTF-8; LANGUAGE = EN:穆勒;亚历山大
FN; CHARSET = CHARSET = UTF-8; LANGUAGE = EN:穆勒亚历山大
ORG:CEF企业发展办公室
TITLE:服务管理
END:VCARD

但仍名字被显示为 “Müller,亚历山大”?

+0

-1浪费PiRX的时间。 –

+0

你是什么意思?我不应该在这里问问题吗? –

+0

尝试复制/粘贴您的示例到记事本并保存为vcf。为我工作。也许试试这个,如果它工作,然后检查二进制差异,文件之间有什么区别。 – PiRX

回答

0

您需要与

CHARSET=utf-8 

例如指定Unicode字符的字符集场:

N;CHARSET=utf-8:Müller 
+0

好的,更新了问题...任何帮助? –

1

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

+0

+1,用于建议将UTF-8字符串转换为QUOTED-PRINTABLE。 OP应该试试这个。 – Michael