Français

Données et feuilles de calcul · CSV Nettoyeur

CSV Dialectes d'échappement : guillemets doublés, barres obliques inverses et exportations de bases de données

· Contexte

csv analyse interopérabilité

Un chemin CSV entre guillemets doubles réussit tandis qu'une barre oblique inverse reste un texte littéral
Illustration vectorielle originale de ToolAcre

RFC 4180 dit de doubler un devis ; plusieurs outils de base de données exportent à la place avec des barres obliques inverses. Cet article explique les conventions en circulation, d'où chacune vient et pourquoi un fichier valide dans un dialecte se brise dans un autre.

Une exportation de base de données qu'une feuille de calcul lit avec des barres obliques inverses parasites : deux traditions en fuite se heurtent dans un seul fichier.

Une exportation peut contenir une barre oblique inverse suivie d'une citation, car son producteur suit une convention de style langage de programmation, alors qu'un analyseur orienté feuille de calcul attend des guillemets doublés. Alimenter un dialecte par un autre ne crée pas un compromis neutre. Il change l'endroit où l'état cité s'ouvre et se ferme ou laisse des caractères d'échappement dans les données.

ToolAcre prend en charge une règle claire : les champs peuvent être placés entre guillemets doubles et un guillemet interne est représenté par deux guillemets. La barre oblique inverse n'a aucun rôle d'échappement. Il est plus sûr d'identifier ce contrat avant le chargement que de demander au nettoyeur de deviner quelle ponctuation le producteur voulait.

La convention RFC : placez des guillemets doubles et doublez n'importe quelle citation interne, sans aucun caractère d'échappement.

Pour une valeur telle que `She said "hello", then left`, le style RFC CSV entoure le champ et écrit les marques internes deux fois. Le délimiteur reste à l’intérieur de l’état cité et chaque paire doublée renvoie une citation littérale. La sérialisation applique la même transformation en sens inverse.

Les champs sont cités lorsqu'ils contiennent le délimiteur actuel, une citation, LF, CR ou des espaces environnants, ou lorsque l'option Citer chaque champ est sélectionnée. Il n'y a pas de caractère d'échappement distinct. Cette petite grammaire est testée pour les délimiteurs, les fins d'enregistrement intégrées et les paires de guillemets.

La tradition C : guillemets, nouvelles lignes et délimiteurs avec barre oblique inverse hérités des langages de programmation et de certains chargeurs de bases de données

Certains systèmes sources peuvent définir des conventions de barre oblique inverse, mais ToolAcre n'a pas de commutateur pour eux. Une barre oblique inverse est ajoutée au champ actuel comme n'importe quel caractère ordinaire. Une citation suivante est ensuite interprétée selon que l'analyseur est dans l'état cité et s'il possède une citation appariée.

Par conséquent, une exportation de barre oblique inverse doit être analysée par un outil configuré pour ce dialecte avant la conversion en guillemets doubles CSV. La recherche et le remplacement sont risqués car les barres obliques inverses littérales et les séquences d'échappement peuvent se ressembler. La grammaire source doit décider lesquelles sont de la syntaxe.

L'échappement par barre oblique inverse est un dialecte alternatif non pris en charge, pas un mode que ToolAcre peut lire

Le classeur nomme les produits de base de données et les bibliothèques de trames de données, mais leurs valeurs par défaut et leurs modes configurables ne sont pas documentés dans ce référentiel. Cet article n'attribue pas de dialecte à un fournisseur particulier. Consultez la documentation exacte de l’exportateur ou du chargeur utilisée par le flux de travail.

Capturez la commande et les options qui ont généré le fichier. Un produit peut prendre en charge plusieurs modes, son nom à lui seul n'est donc pas un dialecte. La reproductibilité provient de la configuration et d'un échantillon contenant des cas extrêmes de délimiteur, de guillemets, de nouvelle ligne et de barre oblique inverse.

Les valeurs par défaut spécifiques des bases de données et des bibliothèques nécessitent leur propre documentation et ne sont pas revendiquées ici

Sous cet analyseur, `"a \"quote\"",b` ne signifie pas ce à quoi un lecteur de style C pourrait s'attendre, car les barres obliques restent dans le texte et les guillemets régissent l'état CSV. À l’inverse, une paire doublée à l’intérieur d’un champ entre guillemets devient une guillemet plutôt que deux caractères littéraux.

Une incompatibilité peut déclencher des colonnes décalées ou un avertissement de guillemets non fermés, ou elle peut être analysée en chaînes d'apparence erronée sans erreurs structurelles. Prévisualisez les lignes représentatives et comparez-les avec celles du producteur. Le succès syntaxique ne peut à lui seul certifier que la sémantique d’échappement correspond.

Selon les règles de ToolAcre, les barres obliques inverses restent littérales et les guillemets doubles sont le seul échappement de guillemets

Écrivez une cellule contenant à la fois une virgule et une citation sous la forme RFC CSV : `"She said ""hi"", then left"`. ToolAcre renvoie la valeur exacte `She said "hi", then left`. Écrivez plutôt la citation intérieure avec des barres obliques inverses et observez que la barre oblique n'a aucune protection spéciale.

La comparaison démontre les règles de l'analyseur sans dépendre d'une marque de base de données. Après une analyse correcte, le téléchargement produit systématiquement des guillemets doublés. Après une analyse incompatible, l'exportation normalise simplement les mauvaises cellules, donc résolvez le dialecte source avant de faire confiance au résultat.

Ce que cela ne couvre pas : exportations binaires, fichiers de largeur fixe et caractères d'échappement entièrement personnalisés

Les exportations binaires, les enregistrements à largeur fixe et les caractères d'échappement personnalisés sont en dehors de l'itinéraire. Un devis non clôturé est signalé et consomme le reste de l'entrée dans un seul champ ; le nettoyeur ne déduit pas où appartenait un proche manquant. Cette ambiguïté ne peut être réparée de manière générique.

L'interface ne convertit pas non plus automatiquement un dialecte de barre oblique inverse. Utilisez un analyseur qui nomme explicitement le caractère d'échappement, obtenez une table de chaînes vérifiées, puis sérialisez selon la convention cible. Chaque grammaire doit être appliquée une fois à une limite connue.

Connaître le dialecte aux deux extrémités - comment la réparation des devis du nettoyeur ToolAcre CSV normalise les champs vers des citations cohérentes lues par les analyseurs standard

Connaître les deux points de terminaison. ToolAcre est approprié lorsque la source suit des guillemets doubles CSV ou lorsqu'un autre analyseur a déjà normalisé un dialecte différent dans des cellules vérifiées. Sa sortie offre des cotations minimales ou sur tous les champs cohérentes et double chaque cotation intégrée.

Ne confondez pas un téléchargement nettoyé avec une détection de dialecte. Le détecteur automatique choisit des délimiteurs et non des grammaires d'échappement. Un transfert fiable enregistre le séparateur, la règle de cotation, la politique de nouvelle ligne et l'encodage ensemble, puis teste un échantillon contradictoire avant le déplacement des données de production.