Response.Write を使用してブラウザにvCardをダウンロードし、特殊なアクセント付き文字を含む .NET 文字列を出力しています。MIME タイプがtext/x-vcardであり、フランス語の文字が Outlook で正しく表示されない。たとえば、Montréal;Québec
.NET 文字列Montréal Québec
がブラウザで表示される。
どうやら vCard のデフォルト形式は ASCII です。.NET 文字列は Unicode UTF-16 です。
CodeProject.com の vCard ジェネレーター コードを使用しています。
このリンクされた MSDN ページの下部にある System.Encodingサンプル コードを使用して、Unicode 文字列をバイトに変換し、ASCII バイトを書き込んでみましたが、Montr?al Qu?bec
(進行はしますが、勝利ではありません)。また、コンテンツ タイプを us-ascii と応答の utf-8 の両方に設定しようとしました。
ダウンロードした vCard を Windows のメモ帳で開き、(既定の Unicode 形式ではなく) ANSI テキストとして保存し、Outlook で開いても問題ありません。したがって、ANSI 文字セットをダウンロードする必要があると思いますが、それが間違っているのか、どこから始めればよいのか誤解しているのかどうかはわかりません。
更新:生の HTTP を見ると、フランス語の文字が予期しない形式でダウンロードされているように見えるため、サーバー側で何らかの作業を行う必要があるようです... raw http://img444.imageshack.us/img444/ 8533/charsd.png (フルサイズ)