在Windows中使用vCard进行UTF8编码

问题描述 投票:7回答:5

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

我可以让它在Mac上正常工作,但是一旦我在Windows(Windows Contacts)中打开一个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");
encoding utf-8 vcard
5个回答
6
投票

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

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


6
投票

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

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


1
投票

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


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上测试过。


1
投票

对于我使用UTF-8并且可以在Mac OS X中使用,所有像ĘĄĆŻŹŃŁÓŚ ęąćżźńłóś这样的抛光字符都足以切换到声明VERSION:3.0

© www.soinside.com 2019 - 2024. All rights reserved.