-3

C#.Netを使用してユーザーの連絡先の詳細を名刺としてOutlookに送信するという特定の要件があります。これは完全に機能し、名刺をOutlookに送信しますが、ユーザー名がUnicode形式の場合に問題が発生します。

サンプル-1:
-UserName:Crazy-
完全に機能し、Outlookに問題なくユーザー名を表示できます。

サンプル2:
-ユーザー名:ミュラー
-名刺を送信しますが、Outlookでは「ミュラー」と表示されています。

使用されるロジックは次のとおりです。

  1. 詳細は.vcfファイル(テキストファイル)に書き込まれます
  2. ファイルはメールで添付されます。

コードサンプル
System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(filePath);
streamWriter.Write(msgStr);
streamWriter.Close();
streamWriter.Dispose();

添付ファイル_mailAttachment=new Attachment(filePath);
_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; AlexanderFN
; CHARSET = CHARSET = UTF-8; LANGUAGE = en:MüllerAlexanderORG
:CEF Corporate Development Office
TITLE:Serviceマネージャー
END:VCARD

それでも名前は「ミュラー、アレクサンダー」と表示されていますか?

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 に答える