在Windows中使用vCard进行UTF8编码

时间:2011-12-23 14:59:34

标签: encoding utf-8 vcard

我在网站上实施了一个vCard。问题是在Windows上没有正确解析特殊字符。

我可以让它适用于Mac,但是只要我在Windows(Windows通讯录)中打开vcf,就会搞砸了。当我在记事本中打开vcf时,它会正常显示字符。

我尝试了所有可以找到的vcf版本(2.1,3.0,4.0)。我在内容类型标题中使用了charset-utf-8(text / x-vcard; charset:utf-8)。我使用N; CHARSET = utf-8 :(和其他标签)。

一切都无济于事。

有人有解决方案吗?感谢您分享您的见解。

使用的标题:

header("Content-type: text/x-vcard; charset=utf-8");
header("Content-Disposition: attachment; filename=".$this->filename.".vcf");
header("Pragma: public");

5 个答案:

答案 0 :(得分:6)

我发现我没有在vCard字段中提供;CHARSET=utf-8,而是提供了;CHARSET=windows-1252,这导致在Outlook 2010中正确打开了vcard。

不是每个人的解决方案,但希望这有助于某人。

答案 1 :(得分:6)

要使Outlook导入UTF-8 vCards,您必须打开Outlook选项,转到高级> 国际选项,然后为外发电子邮件和外发电子贺卡选择UTF-8 ...瞧 - 导入有效!

难道很明显,必须设置导出选项来设置导入......?谢谢微软:P

答案 2 :(得分:1)

比较了两个文件,一个来自不同的服务和我的。看来其他服务的工作版本使用Content-Type: text/x-vcard; charset=iso-8859-1

答案 3 :(得分:1)

使用ISO-8859-1,你应该没问题。只需确保链中的每个部分都使用该编码(.vcf文件,.vcf文件中的编码声明和标题)。

标题:

Content-Type: text/x-vcard; charset=iso-8859-1

Vcard(例如,必须使用iso-8859-1编码保存):

N;CHARSET=iso-8859-1:Übermann

在Windows,OS X,IOS和Android上测试。

答案 4 :(得分:1)

让我使用UTF-8并且可以在Mac OS X中使用,ĘĄĆŻŹŃŁÓŚ ęąćżźńłóś之类的所有修饰字符都足以切换为声明VERSION:3.0