我正在编写一种方法,允许用户根据某些信息生成vCard文件。它运行良好,用户可以使用Microsoft Outlook打开生成的文件,没有任何问题(在2010和2013版本上测试)。但是当他想用Windows Contacts打开它时,重音字符没有很好地显示,而我已经将字符集设置为不同的字段为UTF-8。
以下是生成的vCard的示例:
BEGIN:VCARD
VERSION:4.0
FN;CHARSET=utf-8:Vandenbergh Cédric
N;CHARSET=utf-8:Vandenbergh;Cédric;;;
TITLE;CHARSET=utf-8:Manager d'entité
END:VCARD
以下是使用Windows Contacts打开它时的结果:
可能是Windows联系人中的错误(在Windows 8.1下测试过)吗?或者我错过了什么?
修改
以下是我用于下载vCard的代码:
Context.Response.Clear();
Context.Response.Buffer = true;
Context.Response.ContentType = "text/x-vCard; charset=utf-8";
Context.Response.AddHeader("Content-Disposition", "attachment;filename=file.vcf");
Context.Response.Write(user.GetVCard()); // Get vCard content
Context.Response.Flush();
Context.Response.End();
编辑2/10/15
我仍然不知道如何解决这个问题。在我看来,它可能真的是一个Windows联系人错误,但我在网上找不到任何东西来确认我的印象。
答案 0 :(得分:0)
仅仅因为你添加了一个" CHARSET = utf-8"参数并不意味着该值将以UTF-8写入。您可能没有将字符编码设置为" UTF-8"当你写vCard时。
另请注意,vCard 4.0版不支持" CHARSET"参数。规范规定所有vCards必须以UTF-8编写。