vCard的重音字符未在Windows联系人中显示

时间:2014-11-18 09:29:55

标签: asp.net character-encoding contacts vcard vcf

我正在编写一种方法,允许用户根据某些信息生成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打开它时的结果:

vCard in 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联系人错误,但我在网上找不到任何东西来确认我的印象。

1 个答案:

答案 0 :(得分:0)

仅仅因为你添加了一个" CHARSET = utf-8"参数并不意味着该值将以UTF-8写入。您可能没有将字符编码设置为" UTF-8"当你写vCard时。

另请注意,vCard 4.0版不支持" CHARSET"参数。规范规定所有vCards必须以UTF-8编写。