Aller au contenu
OneKitly

Une adresse vCard a sept morceaux, une colonne de CSV en a un

Publié le 08/09/2026 · 5 min de lecture · Outils fichiers

Daniel Okonkwo

Daniel Okonkwo — Développeur front-end et rédacteur Tech chez OneKitly

Performance web · Formats de fichiers

Vérifié à partir de 3 sources

Voir le profil →
En bref

La vCard range un nom en cinq composantes (famille, prénom, autres, préfixe, suffixe), une adresse en sept (boîte postale, complément, rue, ville, région, code postal, pays) et une société en une entité et ses services, chacune séparée par un point-virgule non échappé. L'export CSV écrit une colonne par notion : l'adresse devient donc 12 rue de la Paix, bâtiment C, Paris, 75002, France — les mêmes mots, joints par des virgules, frontières disparues. Lire ce tableur va bien, le trier aussi. C'est en refabriquant une vCard que la perte se voit : toute l'adresse atterrit dans la composante rue, et un contact importé dans un téléphone a une rue nommée 12 rue de la Paix, bâtiment C, Paris, 75002, France avec une ville vide et un code postal vide. Deux services fondus en une seule société et un numéro de mobile qui ne dit plus qu'il est mobile suivent le même chemin. Fusionne, consulte et modifie dans le .vcf quand la structure compte ; sors le CSV quand tu veux une liste à lire, trier ou compter.

Noms, adresses et sociétés sont des champs structurés dans une vCard. Aplatis-les dans un tableur : ils se lisent à l'identique tout en perdant leurs coutures — ce qui compte dès qu'on refabrique une vCard depuis ce tableur.

Le point-virgule qui n'en est pas un

Dans une vCard, la structure est portée par des points-virgules nus et le contenu échappe les siens. Une société nommée Sarl Dupont, Martin et fils s'écrit Sarl Dupont\, Martin et fils, antislash compris, précisément pour qu'un lecteur distingue cette virgule d'un séparateur. Il en va de même des points-virgules dans une valeur et des retours à la ligne dans une note. Découpe une ligne de vCard sur un point-virgule ou une virgule ordinaires et tu coupes des noms en deux — d'où un analyseur qui parcourt la ligne et respecte les antislashs au lieu d'appeler split.

Le repli de ligne est le second piège, et il est invisible dans un éditeur. Une propriété longue est coupée à 75 octets et continuée à la ligne suivante par une espace initiale : une note de 149 caractères peut donc tenir sur trois lignes et se lire comme trois champs cassés pour qui découpe sur les retours à la ligne. Correctement dépliée, elle revient entière, échappement intact — c'est ce que montre le visualiseur et ce que le CSV emporte ensuite.

Quel sens prendre, et quand

Prends le CSV quand la réponse cherchée est une liste : qui travaille dans quelle société, combien de contacts n'ont pas d'e-mail, quels numéros commencent encore par un vieil indicatif. Un tableur est la bonne forme pour ces questions, une vCard une mauvaise. Prends l'export JSON quand un autre programme doit le lire — il garde les listes de téléphones et d'e-mails comme des listes plutôt que de les fondre dans une cellule, ce qui fait la différence entre un script qui marche et un script qui devine où couper.

Un contact à travers .vcf → CSV → .vcf, propriété par propriété
Dans le .vcf d'origineCe qui ressortSe lit pareil ?
ADR:;;12 rue de la Paix, bâtiment C;Paris;;75002;FranceTout dans la composante rue, ville et code postal videsOui
ORG:Sarl Dupont, Martin et fils;Service commercialUne seule société, le service raccroché par un tiretOui
TEL;TYPE=CELL et TEL;TYPE=WORK,VOICEDeux lignes TEL, aucune ne disant laquelle est laquelleNuméros oui, étiquettes non
N:Dupont;Jean-Pierre;Marie;M.;N:Dupont;Jean-Pierre;;; — deuxième prénom et civilité perdusEn grande partie
NOTE et EMAIL, à virgules échappéesIdentiques, échappement et les deux adresses intactsOui
VCF en CSVTransforme un carnet d'adresses vCard en CSV prêt pour un tableur, un contact par ligne.Essayer l'outil →

Questions fréquentes

Mes contacts importés n'ont ni ville ni code postal. Pourquoi ?
Parce qu'ils sont passés par un tableur. Une colonne d'adresse devient une composante d'adresse, et la composante qu'utilise une vCard reconstruite est la rue — les champs ville, région, code postal et pays arrivent donc vides alors que chaque mot est toujours là. Si tu as besoin de ces champs remplis, garde le .vcf d'origine ou découpe toi-même l'adresse en colonnes distinctes et complète-les dans la destination après import.
Les caractères accentués survivent-ils ?
Dans les outils, oui — tout est lu et écrit en UTF-8. Là où ils cassent d'ordinaire, c'est dans un tableur qui ouvre le CSV dans un autre encodage, ce qui transforme é en deux caractères avant que tu aies rien fait. Ouvre le fichier par la boîte de dialogue d'import de ton tableur en choisissant UTF-8 plutôt qu'en double-cliquant, et contrôle un nom accentué avant d'en modifier deux cents.
Y a-t-il une version de vCard à préférer ?
La 3.0 est ce qu'exportent la plupart des carnets d'adresses et ce que tout le monde lit : c'est le choix sûr pour déplacer des contacts d'une application à l'autre. La 4.0 est la norme actuelle et écrit certaines valeurs en URI — un téléphone peut arriver sous la forme tel:+33612345678, préfixe compris — tandis que la 2.1, encore produite par de vieux téléphones et clients de messagerie, marque les types sans signe égal, TEL;CELL plutôt que TEL;TYPE=CELL. Les outils lisent les trois ; à l'écriture, la 3.0 voyage le plus loin.

Articles qui pourraient t'intéresser

Tous les guides →
ComparatifTrois versions de vCard, et la même personne dans chacuneLa 2.1 marque les types sans signe égal, la 3.0 est ce que tout le monde lit, la 4.0 écrit certaines valeurs en URI — un téléphone peut donc arriver sous la forme tel:+33612345678, préfixe compris. Savoir laquelle tu as explique la plupart des surprises d'import.ComparatifDeux e-mails dans une cellule, ou deux chaînes dans un tableauUn contact peut avoir plusieurs numéros et plusieurs adresses. Le CSV les joint par un point médian dans une seule cellule ; le JSON les garde en liste — c'est la différence entre un script qui marche et un script qui découpe au jugé.TutorielTu n'as pas à renommer tes colonnes en anglaisLa ligne d'en-tête est reconnue en six langues : prénom, apellidos, Vorname et cognome sont tous compris. Un en-tête est réellement ambigu — nom — et c'est la colonne d'à côté qui tranche.ComparatifL'export JSON garde trois choses dont le CSV n'a pas la colonneMême fichier, même analyseur, deux sorties. Le tableur reçoit huit colonnes ; le JSON reçoit en plus le fuseau nommé, l'indicateur de journée entière et la règle de récurrence.TutorielFusionner agendas et carnets d'adresses ajoute — cela ne dédoublonne pasLes outils de fusion mettent chaque fiche de chaque fichier dans une seule sortie, dans l'ordre où tu les as donnés. C'est le bon comportement par défaut, et la seule chose à savoir avant d'y verser deux exports du même compte.TutorielFabriquer un agenda depuis un planning que tu as déjà dans un tableurEmplois du temps, calendriers de matchs, plannings de garde et programmes de conférence commencent tous leur vie en tableau. Quatre colonnes suffisent à en faire un fichier que toute application d'agenda sait importer.

Outils similaires

Sources

Tu as repéré une erreur dans cet article ?