【发布时间】:2013-03-18 06:59:56
【问题描述】:
我们在尝试在 PHP 中创建 vcard 时遇到字符编码问题。
在 Outlook 中,使用特殊字符的名称会被扭曲,例如“é”变成“é”。
我们更新了 Windows 字符编码的标题以及 FN 和 N 部分,但问题仍然存在。
感谢任何建议。
电子名片摘录:
BEGIN:VCARD
VERSION:3.0
REV:2013-03-27 19:37:46
FN;CHARSET=Windows-1252:Namé S. Nameé
N;CHARSET=Windows-1252:Namé;Namé;;;
TITLE:Associate
ORG:Company
EMAIL;TYPE=internet,pref:name@abc.com
TZ:-0400
END:VCARD
Vcard 的 PHP 头文件:
header("Content-type: text/x-vcard; charset=windows-1252;");
header("Content-Length: ".strlen($vc->card));
header("Content-Disposition: attachment; filename=".$vcard_name.".vcf");
header("Pragma: public");
【问题讨论】:
-
进入编辑器中的编码选项,将其从 utf8 更改为 windows-1252,然后保存文件。
-
PHP 脚本会动态生成 vcard 文件,因此任何解决方案都必须先解决问题,然后才能在 Outlook 中打开它。
-
打开你的 php 文件去你的编辑器中的编码选项,将它从 utf8 更改为 windows-1252 然后保存文件。
-
@Musa 谢谢,但我认为您没有遵循我们想要的...我们正在尝试使用 PHP 脚本生成多个 vcard,并且我们已经在标题中指定了该编码。在本地重新保存一张卡片并不能解决问题,因为我们首先需要正确打开卡片。
-
设置内容类型不会将
utf-8更改为windows-1252,您必须使用编辑器或php(例如iconv)进行转换
标签: php character-encoding vcf-vcard