Données et feuilles de calcul · CSV Nettoyeur
RFC 4180 expliqué : la chose la plus proche CSV doit être conforme à une norme officielle
· Contexte
csv rfc-4180 formats de données
CSV existait depuis des décennies avant que quiconque ne l'écrive. Cet article passe en revue la RFC 4180, ce qu'elle dit réellement sur les délimiteurs, les guillemets, les fins de ligne et les en-têtes, et pourquoi les fichiers du monde réel l'ignorent toujours.
Deux fichiers CSV « valides » qu'aucun analyseur ne lit correctement – pourquoi le format s'est développé pendant des décennies sans norme
Deux fichiers peuvent tous deux porter une extension .csv tandis que l'un utilise des points-virgules, un autre des tabulations et chacun applique des guillemets différemment. Un analyseur doit connaître un dialecte avant que la ponctuation ne devienne une structure. ToolAcre commence avec quatre candidats et note des formes d'échantillon analysées plutôt que de faire confiance à l'extension.
Cette flexibilité explique pourquoi « CSV valide » est souvent une description incomplète. Le nettoyeur peut accepter les écarts courants, puis sérialiser un résultat cohérent. Son comportement est défini par la configuration et les tests, donnant un contrat plus utile que de supposer que chaque producteur suit parfaitement un mémo.
Qu'est-ce que la RFC 4180 : une note d'information de 2005 documentant les pratiques courantes, et non une norme contraignante
Le référentiel nomme à plusieurs reprises RFC 4180 comme convention de sortie, mais ce n'est pas une source d'affirmations historiques sur la date ou le statut juridique du mémo. Cet article se concentre donc sur les règles incarnées par l'implémentation : fins d'enregistrement, guillemets, largeur d'en-tête et gestion des délimiteurs.
Lorsque l'historique des normes externes est important, citez la publication principale séparément. Pour utiliser ToolAcre, la preuve pertinente est locale : le code par défaut est CRLF, cite les caractères structurels, double les guillemets internes et signale une ligne dont la largeur diffère de l'en-tête.
Les preuves du référentiel utilisent RFC 4180 comme convention cible ; l'historique des publications est en dehors de l'ensemble source
La cible configurée décrit la sortie délimitée par des virgules, les fins de ligne CRLF, un concept d'en-tête facultatif et des lignes rectangulaires. Sur l'itinéraire expédié, la première ligne n'est en pratique pas facultative : elle est toujours utilisée comme en-tête. Un fichier sans en-tête perd son premier enregistrement au profit de ce rôle.
Une saisie irrégulière n'entraîne pas de rejet. Les rangées courtes sont remplies de cellules vides ; les longues lignes conservent les extras et les deux reçoivent des avertissements numérotés par ligne. Le sérialiseur écrit chaque ligne conservée, donc une « sortie propre » ne signifie pas que le programme a deviné comment résoudre un désaccord structurel.
Citation selon le mémo - quand les champs doivent être cités et comment un guillemet littéral est doublé
Un champ doit être entre guillemets lorsqu'il contient le délimiteur choisi, un guillemet ou un caractère de fin d'enregistrement. ToolAcre cite en outre les espaces de début ou de fin afin qu'un autre analyseur ne les supprime pas silencieusement. À l’intérieur d’un champ entre guillemets, chaque guillemet littéral devient deux guillemets doubles.
La citation de chaque commutateur de champ demande un style uniforme ; sinon, la sortie est peu citée. Les guillemets sources redondants peuvent disparaître tandis que les valeurs analysées restent égales. Cette normalisation est attendue et c'est pourquoi les tests comparent la table récupérée ainsi que le résultat exact pour les exemples sélectionnés.
Le type de média text/csv — les paramètres facultatifs d'en-tête et de jeu de caractères, et pourquoi ils voyagent rarement avec un fichier sur le disque
Un fichier sur disque arrive rarement avec des paramètres de type de support attachés. ToolAcre ne lit pas un paramètre `header` ou `charset` du fichier sélectionné. Il s'appuie sur son contrat de route : texte UTF-8, un en-tête de première ligne et une détection de délimiteur ou une sélection manuelle prise en charge.
Le commutateur d'exportation de nomenclature facultatif écrit U+FEFF avant le premier en-tête. Cela peut aider une feuille de calcul à reconnaître UTF-8, mais la configuration prévient qu'elle peut interrompre l'importation stricte d'un script ou d'une base de données, car le marqueur rejoint le prénom lorsqu'il n'est pas supprimé. Laissez-le de côté, sauf si le consommateur l’exige.
Là où le monde diverge : points-virgules, fins de ligne LF, lignes irrégulières et encodages sans étiquette, et pourquoi le mémo ne tolère rien de tout cela
L'entrée réelle peut utiliser un point-virgule, une tabulation ou une barre verticale, un LF ou un CR isolé, des lignes inégales et une nomenclature UTF-8 de début. L'analyseur accepte intentionnellement toutes ces fins de ligne et candidats délimiteurs. Il ne « tolère » pas silencieusement les querelles irrégulières ; il conserve les données et joint un avertissement.
Un devis non fermé est une autre condition acceptée mais signalée. Tout ce qui se trouve après le guillemet d'ouverture devient un seul champ, car il n'existe aucune limite de fermeture univoque. Corrigez cette source avant de faire confiance à l'exportation. L'analyse permissive est une stratégie de préservation et non une certification de la conformité de l'entrée.
ToolAcre accepte plusieurs écarts réels tout en signalant les lignes irrégulières au lieu de les rejeter
Aucune règle ici ne donne aux cellules des types numériques, booléens ou nuls. L'analyseur renvoie des chaînes et le convertisseur JSON les conserve sous forme de chaînes. Les conventions sémantiques doivent être convenues par l'expéditeur et le destinataire, notamment s'il manque du texte vide et si une séquence de chiffres est un identifiant.
La sécurité de l'injection de formule est une politique d'exportation située au-dessus de la syntaxe CSV. Lorsqu'ils sont activés, les caractères principaux à risque reçoivent une apostrophe, à l'exception des formes numériques ordinaires. Cela modifie délibérément les valeurs de sécurité des feuilles de calcul ; cela ne fait pas partie de l'échappement de guillemets ou d'un système de type général.
Visez une sortie de style RFC même lorsque les entrées l'ignorent - comment le ToolAcre CSV Cleaner répare les fichiers vers une délimitation et une citation cohérentes
Visez un résultat prévisible même lorsque le dialecte source varie. Après avoir analysé et résolu les avertissements, ToolAcre émet des enregistrements CRLF et des guillemets doubles standard. Si le délimiteur détecté reste un point-virgule ou une tabulation, le téléchargement conserve ce délimiteur plutôt que de toujours forcer la virgule.
Sélectionnez manuellement une virgule lorsqu'un contrat de réception nécessite une sortie séparée par des virgules et inspectez le contrôle car il affiche le délimiteur réellement utilisé. La cohérence vient d'une sélection explicite et d'une forme de ligne révisée, et non de la seule extension CSV.