Aller au contenu
OneKitTools logoOneKitTools
data7 min de lecture

"Nettoyer des CSV en vrac : doublons, problèmes d'encodage et formats cassés"

Répare tes fichiers CSV cassés — délimiteurs, mojibake UTF-8, Excel qui mange tes données, doublons et formats de dates — avec un workflow pas à pas.

OneKitTools Team10 juillet 2026

Quelqu'un t'envoie un export CSV. Tu l'ouvres et tu découvres une seule colonne géante de texte, des noms remplis de é à la place des accents, des numéros de téléphone amputés de leur zéro initial, et le même client qui apparaît quatre fois avec trois formats de date différents. Bienvenue dans la data du monde réel.

Le CSV n'est pas vraiment un standard — la RFC 4180 existe, mais presque rien ne l'impose. Chaque outil exporte son propre dialecte, et Excel « aide » activement en réécrivant tes valeurs. Ce guide recense les horreurs classiques et te donne un workflow reproductible pour nettoyer n'importe quel CSV en vrac en quelques minutes.

Pourquoi les fichiers CSV sont-ils si sales ?

Horreur n°1 : le chaos des délimiteurs (la surprise du point-virgule)

CSV signifie « comma-separated values » — sauf quand ce n'est pas le cas. Excel en français (et dans la plupart des locales européennes) exporte avec des points-virgules, parce que ces locales utilisent la virgule comme séparateur décimal (3,14). Un « CSV » sorti d'un Excel français ressemble donc à ça :

id;nom;prix 1;Café des Amis;12,50 2;Boulangerie Marcel;8,90

Donne ça à un parseur qui attend des virgules et tu obtiens une colonne unique par ligne — ou pire, les virgules décimales sont prises pour des délimiteurs et chaque prix se coupe en deux. Des fichiers séparés par tabulations ou par pipes voyagent aussi sous l'extension .csv. Règle numéro un : ne jamais supposer le délimiteur ; regarder le fichier d'abord.

Horreur n°2 : le mojibake d'encodage (é → é)

Si tu vois Café au lieu de Café, tu regardes des octets UTF-8 décodés en Latin-1 (ou Windows-1252). Le caractère é occupe deux octets en UTF-8 (0xC3 0xA9) ; lis-les un par caractère en Latin-1 et tu obtiens é. L'erreur inverse produit caf� avec des caractères de remplacement.

Ce qui a été écrit (UTF-8) : Café, São Paulo, Müller Ce que tu vois (en Latin-1) : Café, São Paulo, Müller

Un gremlin apparenté : le BOM (byte order mark), trois octets invisibles (EF BB BF) qu'Excel place au début des fichiers UTF-8. Les parseurs qui ne le retirent pas nomment ta première colonne id au lieu de id — et d'un coup ton import ne mappe plus aucune colonne.

Horreur n°3 : Excel mange tes données

Excel ne se contente pas d'afficher les CSV — il les réinterprète, de façon destructive :

  • Les zéros initiaux disparaissent. Le numéro 0612345678 devient 612345678. Le code postal 01234 devient 1234. Une fois sauvegardé, les zéros sont perdus pour toujours.
  • Tout devient date. Les gènes SEPT2 et MARCH1 étaient si obstinément interprétés comme des dates qu'en 2020, la communauté génétique a carrément renommé les gènes (désormais SEPTIN2, MARCHF1) plutôt que de continuer à se battre contre Excel. Ta référence produit 1-2 devient 02-janv.
  • Les identifiants longs passent en notation scientifique. Un ID à 16 chiffres comme 8712000012345678 s'affiche 8,712E+15, et Excel remplace silencieusement par des zéros tous les chiffres au-delà du 15ᵉ. Numéros de carte, codes-barres EAN, numéros de suivi : tous victimes.

Si une colonne doit rester du texte, elle doit être typée texte avant qu'Excel n'y touche — une fois le fichier ouvert, le mal est fait.

Horreur n°4 : guillemets, virgules et sauts de ligne imbriqués

Une ligne CSV parfaitement valide peut contenir des virgules et même des retours à la ligne à l'intérieur de champs entre guillemets :

id,nom,notes 1,"Dupont, Jean","Appelé lundi. Veut être rappelé."

C'est un seul enregistrement réparti sur deux lignes physiques. Tout script qui fait naïvement un split(",") par ligne va le déchiqueter. Ajoute des guillemets non échappés dans les champs, et le parsing peut dérailler pour toutes les lignes suivantes.

Horreur n°5 : doublons, roulette des dates et caractères invisibles

  • Les lignes dupliquées issues de doubles exports, d'appels API rejoués ou de fusions copier-coller gonflent silencieusement les comptages et corrompent les agrégats.
  • Les dates incohérentes : 03/04/2026 est le 3 avril à Paris et le 4 mars à Chicago. Un mélange DD/MM et MM/DD dans la même colonne est irréparable, sauf quand certaines valeurs (jour > 12) trahissent le format.
  • Espaces de fin et caractères invisibles : "Paris ""Paris", et les espaces insécables (U+00A0), espaces de largeur nulle ou tabulations égarées sont invisibles à l'œil mais fatals aux jointures et aux GROUP BY.

Le workflow de nettoyage, étape par étape

Répare dans le bon ordre — l'encodage avant les délimiteurs, la structure avant le contenu — sinon tu referas le travail.

Étape 1 : profiler avant de toucher à quoi que ce soit

Ne nettoie jamais à l'aveugle. Passe d'abord le fichier dans un CSV Analyzer et réponds à : combien de lignes et de colonnes ? Quel délimiteur ? Quelles colonnes ont des valeurs vides, des types mélangés, des valeurs aberrantes ? Deux minutes de profilage révèlent régulièrement qu'« un fichier en vrac » est en fait trois problèmes précis et réparables.

Étape 2 : corriger l'encodage

Convertis tout en UTF-8 sans BOM — le standard de fait accepté par tous les outils modernes. Si tu vois des motifs de mojibake (é, è, ’), le fichier doit être re-décodé, pas corrigé au rechercher-remplacer : soigner les symptômes caractère par caractère rate ceux que tu n'as pas repérés.

Étape 3 : normaliser le délimiteur et la structure

Standardise sur la virgule avec un quoting correct (ou convertis carrément vers un format plus sain — une conversion CSV to JSON rend la structure explicite et met fin à l'ambiguïté des délimiteurs pour le code en aval). Vérifie que chaque ligne a le même nombre de colonnes ; celles qui dérogent sont généralement des victimes de guillemets mal échappés.

Étape 4 : nettoyer les valeurs

C'est là qu'un Data Cleaner fait le gros du travail en une passe : suppression des espaces de début/fin, réduction des doubles espaces, retrait des caractères invisibles, normalisation de la casse, standardisation des valeurs vides (NULL, N/A, -, "" → une seule convention). Puis normalise les dates en ISO 8601 (2026-07-10) — le seul format qui se trie correctement en tant que texte et reste sans ambiguïté partout.

Étape 5 : dédupliquer — avec précaution

Les doublons exacts sont le cas facile : trier, puis supprimer les lignes identiques. Sur des données en lignes, Sort Lines suivi de Remove Duplicate Lines règle ça en quelques secondes. Le cas subtil, ce sont les quasi-doublons — même client, une ligne avec un espace de fin ou une casse différente — et c'est exactement pour ça que la déduplication vient après le nettoyage des valeurs, pas avant.

Étape 6 : valider le résultat

Re-profile le fichier nettoyé et vérifie que les chiffres ont du sens : le nombre de lignes a baissé de la quantité attendue, aucune colonne ne s'est vidée bizarrement, les plages de dates sont plausibles, les identifiants ont gardé leur longueur. Un nettoyage non validé, c'est juste de l'édition.

Avant / après

# Avant ID;Nom ;date inscription;Téléphone 1;Café élite ;03/04/26;0612345678 1;Café élite;3/4/2026;612345678 2;Müller GmbH;2026-04-03;+49301234567 # Après id,nom,date_inscription,telephone 1,Café élite,2026-04-03,0612345678 2,Müller GmbH,2026-04-03,+49301234567

Mêmes données, un tiers de lignes en moins, zéro ambiguïté — et le fichier s'importera à l'identique partout.

Aide-mémoire : symptôme → correctif

SymptômeCause probableCorrectif
Tout dans une seule colonneDélimiteur point-virgule/tabulationDétecter le délimiteur, re-parser
é, ’, ü dans le texteUTF-8 lu en Latin-1Re-décoder en UTF-8
Premier en-tête idBOMRetirer le BOM, sauver en UTF-8 sans BOM
Codes postaux sans zéro initialExcel a typé la colonne en nombreRéexporter, forcer le type texte
8,7E+15 dans une colonne d'IDNotation scientifique ExcelRéexporter en texte (chiffres >15 perdus)
Lignes coupées/fusionnées au hasardVirgules ou sauts de ligne non quotésVrai parseur CSV, corriger le quoting
Comptages supérieurs à la réalitéLignes dupliquéesNettoyer les valeurs, puis dédupliquer
Jointures qui échouent mystérieusementEspaces de fin / caractères invisiblesTrim + retrait des caractères invisibles

Nettoie ton CSV maintenant

Les CSV en vrac ne sont pas de la malchance — c'est le résultat prévisible des différences de locale, des encodages incompatibles et de l'enthousiasme d'Excel. Avec un workflow qui profile d'abord et le bon ordre d'opérations, même un fichier catastrophe redevient de la donnée propre et importable en quelques minutes.

Colle tes données dans le Data Cleaner gratuit — trim, déduplication, normalisation de casse et de format en une passe, entièrement dans ton navigateur : tes données ne quittent jamais ta machine. Aucun compte requis.

Partager