¿Qué formatos/versiones y codificaciones de vCard se admiten para la importación?

Intenté importar archivos vCard usando la aplicación Contactos predeterminada en Samsung Galaxy S6 ( detalles aquí ), pero no estoy seguro del formato requerido (compatible con la versión vCard) y la codificación que se usará.

Usé Windows-1250la codificación y funcionó, pero todos los caracteres especiales se importaron como ?. Al usarlo UTF-8no se pudo importar por completo. ¿Cuál es la codificación de caracteres recomendada y el formato/versión recomendados de vCard?

Actualmente, mi archivo vCard se ve así con la codificación de Windows-1250:

BEGIN:VCARD
VERSION:3.0
NAME:XXXX Günzel
N:Günzel;XXXXX;;;
TEL;CELL:+XXXXXXXXX
END:VCARD
¿Ha especificado el conjunto de caracteres con sus registros de vcard? Ver aquí para ejemplos.
No, no lo hice... ¿Debería? ¿Cuál es el juego de caracteres predeterminado?
Mira mi respuesta a continuación :)

Respuestas (1)

Esa no es realmente una pregunta de Android, pero suponiendo que esté preguntando "¿cómo puedo importar este archivo VCard correctamente a mi libreta de direcciones de Android": es posible que se requieran algunos ajustes en el archivo VCard. Encontré un resumen de especificaciones en este comentario de problema de Github :

  1. vCard 2.1 es US-ASCII por defecto. Las propiedades individuales se pueden anular con el CHARSET=parámetro.
  1. vCard 3.0 requiere que el tipo MIME incluya un conjunto de caracteres, por ejemplo, Content-Type: text/vcard; charset=ISO-8859-1.
  2. vCard 4.0 siempre es UTF-8.

Dando un ejemplo para 1., tomado de este artículo :

COMENZAR:VCARD
FN;CHARSET=UTF-8:Sr. Dr. John Maurice Benjamin Doe Ph.D.\, JD
N;CHARSET=UTF-8:Doe;John;Maurice,Benjamin;Sr.,Dr.;Ph.D.,JD
FIN: TARJETA

Otras lecturas incluyen RFC 6350 :)

Entonces, cuando tengo vCards de la versión 3.0 con codificación UTF-8, entonces no necesito hacer nada, supongo.The charset (see [RFC3536] for internationalization terminology) for vCard is UTF-8 as defined in [RFC3629]. There is no way to override this. It is invalid to specify a value other than "UTF-8" in the "charset" MIME parameter (see Section 10.1).
Así es como yo lo leería, sí. Aunque no es que haya jugado con él :)
Parece que tenía dos caracteres no válidos al principio del archivo creado por C#, lo comprobaré más tarde.
lista de materiales ? :) Tiene ese problema con bastante frecuencia con los scripts SQL en Oracle. Incluso si el conjunto de caracteres es UTF8, SQL*Plus no puede manejar la lista de materiales al principio de los archivos (deben guardarse como "UTF8 sin lista de materiales"). Sin embargo, no estoy seguro de si ese es el caso aquí.
Sí lista de materiales. Su respuesta fue útil, gracias, lo intentaré, pero el teléfono no es mío, por lo que me llevará un tiempo.
¡Tome su tiempo! Al menos tienes varios consejos que ahora puedes seguir :) ¡Buena suerte!
A partir de Android N / Nougat / 7.0, la aplicación AOSP Contacts solo puede importar vCard 2.1 (que también es el formato que exporta). Cualquier desviación del formato de vCard 2.1, incluido simplemente cambiar el identificador de versión, hará que no se pueda importar.
Gracias por ese informe, @Dan, pero ¿es una experiencia que hiciste en tu dispositivo (que podría ser específico del dispositivo), o hay una fuente que podrías nombrar (que luego debería incluir en mi publicación)? Suena bastante irritante que los formatos más nuevos se hayan abandonado en favor de uno más antiguo. Se esperaría lo contrario.
@Izzy, estoy de acuerdo. No estoy seguro de si es específico del dispositivo o de la ROM y no puedo encontrar ningún código fuente en particular para demostrarlo. Android es frustrante.
Lamentablemente, tengo que confirmar que, sorprendentemente, solo se exporta vCard 2.1 y solo se pueden importar vCard 2.1 y 3.0. - ¡todavía no hay soporte para vCard 4.0 !
still no support for vCard 4.0!desafortunadamente, la situación no ha cambiado desde 2018 hasta 2022. Estoy escribiendo esto desde Android 12 y todavía es vCard 2.1 :(