我在网站上实施了一个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");
答案 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