Formato vCard: estructura de un archivo
El formato vCard
vCard es un formato estandarizado de tarjeta de visita electrónica, un pequeño archivo de texto con información estructurada sobre nuestros datos de contacto: nombre y apellidos, teléfono, e-mail, etc. Ciertos dispositivos y programas, como algunas PDAs, teléfonos móviles y programas de correo electrónico, son capaces de enviarse entre sí y reconocer archivos de texto en este formato con la extensión .vcf, añadiendo automáticamente el contenido a su lista de contactos. Por ejemplo, en el caso de las PDA de Palm es muy típico enviarse por infrarrojos una “tarjeta de visita”, que no es más que un archivo .vcf con los datos de contacto de quien la envía.
Desde hace ya bastantes meses hemos estado utilizando microformatos en los proyectos de Deditec. En concreto, estamos aplicando hCard (la versión en microformato de vCard) en los datos de contacto de varios de los sitios web que hemos desarrollado hasta ahora, y probablemente utilicemos hCalendar (e incluso hAtom) en cuanto tengamos la oportunidad.
Precisamente a raíz del uso de hCard se nos ocurrió hacer un pequeño experimento: incluir archivos vCard en nuestras firmas de correo electrónico y en los datos de contacto de nuestra web. El resultado, aunque satisfactorio, no lo ha sido tanto como esperábamos por razones que detallaré más adelante, pero al menos hemos aprendido bastantes cosas acerca del formato vcard que espero podamos aprovechar en el futuro… pero mejor pasemos a la acción:
Ejemplo de archivo vCard
Actualmente existen dos versiones de vCard, la 2.1 y la 3, pero en esta entrada me centraré en la más utilizada, la 2.1 (la que reconocen Mozilla Thunderbird, MS Outlook, Palm, …). La documentación completa sobre el formato vCard (en inglés) está disponible en la web del Internet Mail Consortium; además, en el artículo de la Wikipedia correspondiente a vCard hay una buena colección de referencias.
Veamos un ejemplo con los campos más habituales (puedes descargarte el archivo ejemplo.vcf desde aquí):
BEGIN:VCARD VERSION:2.1 N;CHARSET=ISO-8859-1:Apellidos;Nombre FN;CHARSET=ISO-8859-1:Nombre Apellidos TITLE;CHARSET=ISO-8859-1;LANGUAGE=es-ES:Cargo ORG;CHARSET=ISO-8859-1:Empresa, S.L. ADR;WORK;CHARSET=ISO-8859-1;LANGUAGE=es-ES:;;C/ Mi Calle, 1, bajo;Ciudad;Provincia;28000;Spain LABEL;WORK;CHARSET=ISO-8859-1;ENCODING=QUOTED-PRINTABLE;LANGUAGE=es-ES:Empresa, S.L.=0D=0AC/ Mi Calle, 1, bajo=0D=0A28000 - Ciudad=0D=0ASpain NOTE;CHARSET=ISO-8859-1;ENCODING=QUOTED-PRINTABLE;LANGUAGE=es-ES:C.I.F.: B-8xxxxxxx EMAIL;PREF;INTERNET:mi.mail@dominio.es URL;WORK:http://www.dominio.es TEL;CELL:(+34) 6xxxxxxxx TEL;WORK:(+34) 9xxxxxxxx END:VCARD
A pesar del aspecto tan abigarrado, todo esto tiene sentido
. Debemos tener en cuenta que el formato vCard está pensado para que sea leído por una máquina, y no por una persona, a diferencia de los microformatos como hCard. También debemos tener en cuenta que no siempre se necesitan todos los datos que he incorporado en el ejemplo, y que he añadido algunos parámetros que contribuyen un poco más al aparente caos… pero lo mejor será analizar el documento línea por línea:
Hola, he llegado a tu página desde google al preguntar el modo de enviar VCards a un iPhone (que no dispone, por el momento, de tal opción) y me ha dado toda la información que necesitaba para, al menos, hacer alguna pruebilla y, efectivamente, construi una VCard en notepad y la adjunte a un email y me lo envié al iphone y voila, el aparato reconoce lo que es y lo presenta con un icono apropiado -una especie de fichita-, al hacer clíck sobre él se abre la aplicación Agenda mostrando perfectamente formateado el contenido y te da la opción de añadirlo a un contacto existente o crear uno nuevo con esta información.
Vale estupendo me ha servido para aprender, pero, lo que yo quería era poder enviar los números desde mi teléfono a la agenda del coche u otro teléfono y me parece que tendré que esperar ya que por ahora no hay una aplicación espécífica para ello. ¿Quien la hará?, seguro que en poco tiempo.
Muchas gracias por la información.
UTF-8 soporta en teoria todos los carcteres, tanto tildes y acentos como ogoneks y letras centro-europeas, Quizás vuestros problemas con Thunderbird vienen de ahí. Creo que deberiais especificar como formato UTF-8 y punto. Gracias por el tuto, muy completo… no conocia el temade las vcard y me estoy empapando un poco.. a ver que puedo hacer con ellas.. ciao! Saludos!
@Carlos y @Dani: Muchas gracias a ambos por vuestros comentarios, y encantado de que el artículo os haya sido útil
@Dani: En mi trabajo suelo utilizar UTF-8 prácticamente para todo, pero en este ejemplo concreto (intercambiar vCards entre PalmOS y Thunderbird) no he tenido más remedio que utilizar ISO-8859-1…
Como menciono en el artículo, lo ideal sería utilizar UTF-8, ya que (como comentas muy acertadamente) da un soporte mucho mayor a caracteres internacionales, pero en este caso me he encontrado con que tanto PalmOS como la libreta de direcciones de Windows (al menos en XP) no “tragan” UTF-8 y utilizan ASCII (que por cierto es la codificación por defecto de vCard), y además sin especificarlo
La solución que hemos encontrado ha sido utilizar ISO-8859-1 (que es básicamente un ASCII ampliado) e indicarlo en el propio documento, de tal manera que no hubiera problemas ni con PalmOS, ni con Windows ni con Thunderbird… en cuanto tenga un rato para ello haré alguna prueba con Android, a ver qué pasa. Y si alguien hace más pruebas sobre un iPhone, o sobre un Palm Pre, que no dude en dejarnos un comentario por aqui
¡Gracias de nuevo a los dos!
Hola, tengo una barbaridad de archivos vcard que proceden de un mac y necesito pasarlos a outlook en un pc pero al abrir cada uno de los archivos me salen vacíos. hay alguna posibilidad o algún programa para convertirlos o para al menos que pueda abrirlos y ver el contenido??
Muchas gracias
Hola, Clara:
Prueba a abrir alguno con el bloc de notas de Windows (por ejemplo, abriendo el bloc de notas y arrastrando dentro de él uno de los archivos vcard).
Si el archivo no contiene nada (o al menos nada “legible”), puede ser que estés abriendo el “resource fork” de ese archivo (http://macprogramadores.org/actualidad/trucos/hfsplus/hfsplus.shtml), que no contiene datos legibles normalmente por un PC, o puede ser que realmente el archivo esté dañado. En todo caso, mira si hay algún otro archivo con el mismo nombre (y que no empiece con un punto), y prueba a abrirlo también con el bloc de notas…