vCard 3.0 vs 4.0
vCard 3.0 (RFC 2426, 1998) и vCard 4.0 (RFC 6350, 2011) — две версии стандарта электронной визитки. В QR-кодах используют 3.0 ради совместимости со старыми устройствами.
Определение и история
vCard существует в трёх версиях: 2.1 (1996), 3.0 (RFC 2426, 1998) и 4.0 (RFC 6350, 2011). Строка VERSION: в начале файла определяет правила разбора. Для QR-кодов выбор версии влияет на совместимость: разные смартфоны разбирают синтаксис по-разному.
vCard 3.0 (RFC 2426)
Де-факто стандарт 2000-х. Поддерживается всеми устройствами начиная с Android 2.0 (2009) и iOS 2.0 (2008). Включает все поля для деловой визитки: FN, TEL, EMAIL, ORG, TITLE, URL, PHOTO, ADR. Кодировка UTF-8 через CHARSET=UTF-8.
vCard 4.0 (RFC 6350)
Принят в 2011 году. Добавляет поля GENDER, KIND (individual / org), FBURL. Кодировка строго UTF-8, параметр CHARSET убран. Параллельно вышел RFC 7095 — jCard, JSON-представление для REST API. iOS читает 4.0 с iOS 7 (2013), Android — корректно с версии 8 (2017).
Различия и совместимость
| Параметр | vCard 3.0 | vCard 4.0 |
|---|---|---|
| RFC | RFC 2426 (1998) | RFC 6350 (2011) |
| Поля GENDER / KIND / FBURL | Нет | Есть |
| JSON-вариант (jCard) | Нет | RFC 7095 |
| Поддержка Android | 2.0+ (все) | 8+, частично 5–7 |
| Поддержка iOS | 2.0+ (все) | iOS 7+ |
| Компактность | Базовая | На 5–10% меньше |
| Рекомендация для QR | Да (печать, бейджи) | Только для API/CardDAV |
На бюджетных Android до версии 8 поле GENDER может попасть в имя контакта, а FBURL — в email. Для QR-визитки на бумаге — 3.0. Для серверных API — 4.0. Создать QR с vCard 3.0 можно на QRkoder.
Частые вопросы
Какую версию vCard выбрать для QR на визитке?
Версию 3.0. Android до версии 8 разбирает vCard 4.0 с ошибками: поля GENDER и FBURL могут попасть в имя или email контакта. vCard 3.0 поддерживается с Android 2.0 (2009) и iOS 2.0 (2008) — охват 100% актуальных смартфонов.
Что такое jCard и зачем он нужен?
jCard (RFC 7095, 2014) — JSON-представление vCard 4.0 для REST API: массив ["vcard", [[тип, параметры, kind, значение], ...]]. Содержательно идентичен vCard 4.0. Для кодирования в QR не используется — QR ожидает текстовый .vcf, а не JSON.
Читает ли iPhone vCard 4.0 в QR-коде?
Да, начиная с iOS 7 (2013). Камера и «Контакты» корректно разбирают GENDER, KIND и FBURL. Тем не менее для публичных QR рекомендуется 3.0 — из-за неоднородности Android-парка, а не из-за ограничений iOS.
Насколько vCard 4.0 компактнее 3.0?
На 5–10%. Убраны CHARSET=UTF-8 и ENCODING=b. Для типичной визитки (имя, телефон, email) экономия — 10–20 байт при общем размере 200–250 байт. Версия QR-кода от этого не меняется.
Стоит ли использовать vCard 2.1 в QR-коде?
Нет смысла. vCard 3.0 столь же универсален и нативно поддерживает UTF-8. Если нужна максимальная компактность, лучше MECARD — вдвое меньше байт при базовых полях.