2011-11-03 76 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