C#.Netを使用してユーザーの連絡先の詳細を名刺としてOutlookに送信するという特定の要件があります。これは完全に機能し、名刺をOutlookに送信しますが、ユーザー名がUnicode形式の場合に問題が発生します。
サンプル-1:
-UserName:Crazy-
完全に機能し、Outlookに問題なくユーザー名を表示できます。
サンプル2:
-ユーザー名:ミュラー
-名刺を送信しますが、Outlookでは「ミュラー」と表示されています。
使用されるロジックは次のとおりです。
- 詳細は.vcfファイル(テキストファイル)に書き込まれます
- ファイルはメールで添付されます。
コードサンプル:
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
それでも名前は「ミュラー、アレクサンダー」と表示されていますか?