Кодировка UTF8 с помощью vCards в Windows - PullRequest
7 голосов
/ 23 декабря 2011

Я реализовал vCard на веб-сайте. Однако проблема заключается в том, что специальные символы неправильно анализируются в Windows.

Я могу заставить его нормально работать на Mac, но как только я открываю vcf в Windows (контакты Windows), он портится. Когда я открываю 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 ]

6 голосов
/ 17 марта 2017

Чтобы Outlook импортировал визитные карточки UTF-8, вам нужно открыть параметры Outlook, перейти к Дополнительно > Международные параметры и затем выбрать UTF-8 для исходящих электронных писем и исходящих визитных карточек. И вуаля - импортные работы!

Разве не очевидно, что нужно настроить параметры экспорта, чтобы настроить импорт ...? Спасибо Microsoft: P

6 голосов
/ 10 февраля 2012

Я обнаружил, что вместо ввода ;CHARSET=utf-8 в поле vCard я вместо этого указал ;CHARSET=windows-1252, что привело к правильному открытию vcard в Outlook 2010.

Не решение для всех, но надеюсь, что это кому-нибудь поможет.

1 голос
/ 21 июля 2014

для меня, чтобы работать с UTF-8 и быть читаемым для Mac OS X, все символы польши, такие как ĘĄĆŻŹŃŁÓŚ ęąćżźńłóś, было достаточно для переключения, чтобы объявить VERSION:3.0

1 голос
/ 03 февраля 2014

Используйте 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 голос
/ 27 декабря 2011

Сравнил 2 файла, один работающий от другого сервиса и мой.Оказалось, что в рабочей версии другого сервиса используется Content-Type: text/x-vcard; charset=iso-8859-1.

...