Convertisseur Délimiteur
Convertir entre délimiteurs de texte
La conversion de délimiteurs transforme le texte entre différents séparateurs — virgules, tabulations, pipes, points-virgules, retours à la ligne. Le pont entre CSV, TSV et autres formats.
Qu’est-ce qu’un délimiteur ?
Un délimiteur est un caractère (ou une séquence de caractères) utilisé pour séparer des valeurs distinctes au sein d’une chaîne de texte ou d’un fichier. Les délimiteurs sont l’armature invisible des données textuelles structurées — ils indiquent aux analyseurs où une valeur se termine et où la suivante commence.
Les délimiteurs les plus courants sont la virgule (,), la tabulation (\t), le pipe (|), le point-virgule (;) et le retour à la ligne (\n). Chacun a ses forces et ses faiblesses selon les données séparées et les systèmes qui les consomment.
La conversion de délimiteurs transforme le texte d’un séparateur à un autre — par exemple, convertir des valeurs séparées par des virgules en valeurs séparées par des tabulations, ou remplacer les pipes par des retours à la ligne. C’est une opération simple mais essentielle lors du transfert de données entre des systèmes qui attendent des formats différents.
Délimiteurs courants
| Délimiteur | Caractère | Nom du format | Idéal pour |
|---|---|---|---|
| Virgule | , | CSV | Échange de données général, tableurs |
| Tabulation | \t | TSV | Collage dans un tableur, données contenant des virgules |
| Pipe | | | PSV | Données contenant des virgules et des tabulations |
| Point-virgule | ; | CSV (européen) | Locales européennes où la virgule = séparateur décimal |
| Retour à la ligne | \n | Un par ligne | Listes, entrées de journal, valeurs de configuration |
| Espace | (space) | Séparé par des espaces | Listes de mots simples, arguments de commande |
Pourquoi autant de délimiteurs ?
La prolifération des délimiteurs existe parce qu’aucun caractère unique n’est universellement sûr. Les virgules apparaissent dans les adresses (« New York, NY »), les noms (« Dupont, Jean ») et les nombres en locale européenne (« 1.234,56 »). Les tabulations sont invisibles et peuvent être confondues avec des espaces. Les pipes sont rares dans le texte naturel, ce qui les rend plus sûrs pour les données — mais moins lisibles.
Le choix du délimiteur dépend du contenu de vos données et de votre système cible. En cas de doute, les tabulations sont souvent le choix le plus sûr car elles apparaissent rarement dans le texte naturel.
Le piège du CSV en France
L’un des problèmes les plus courants dans l’échange de données concerne le comportement CSV dépendant de la locale :
- Aux États-Unis et au Royaume-Uni, le séparateur décimal est un point :
3.14 - En France, en Allemagne et dans la plupart des pays européens, le séparateur décimal est une virgule :
3,14
Puisque le CSV utilise la virgule comme séparateur de champ, cela crée un conflit. Les versions européennes d’Excel résolvent le problème en utilisant le point-virgule comme délimiteur CSV à la place. Un fichier CSV américain parfaitement valide apparaîtra comme une seule colonne dans Excel français car Excel interprète les virgules comme des séparateurs décimaux, et non comme des séparateurs de champ.
L’inverse est également vrai : un fichier séparé par des points-virgules provenant d’un système européen se chargera incorrectement dans Excel américain.
Solutions :
- Spécification explicite : Utilisez la ligne d’en-tête
sep=,ousep=;qu’Excel reconnaît - TSV à la place : Les fichiers séparés par des tabulations évitent totalement l’ambiguïté virgule/point-virgule
- Assistant d’importation : Utilisez l’assistant d’importation de données d’Excel pour spécifier manuellement le délimiteur au lieu de double-cliquer sur le fichier
Échappement et guillemets
Lorsqu’une valeur contient le caractère délimiteur lui-même, vous avez besoin d’une stratégie d’échappement :
Mise entre guillemets : Encadrez la valeur entière avec des guillemets doubles. Le délimiteur à l’intérieur des guillemets est traité comme du texte littéral, pas comme un séparateur :
"Smith, John",42,"New York, NY"
Double guillemet : Si une valeur entre guillemets contient un guillemet double, il est échappé en le doublant :
"He said ""hello""",42
Échappement par barre oblique inverse : Certains formats utilisent \, pour représenter une virgule littérale. C’est moins courant que la mise entre guillemets mais utilisé dans certains formats de fichiers de configuration.
La norme RFC 4180 pour le CSV spécifie la mise entre guillemets comme mécanisme d’échappement standard. Les valeurs contenant des virgules, des guillemets doubles ou des retours à la ligne doivent être encadrées de guillemets doubles.
Cas d’usage courants
- Échange de données entre tableurs : Convertir entre les formats CSV et TSV pour la compatibilité avec différentes applications de tableur et paramètres régionaux
- Import/export de base de données : Transformer les données délimitées pour correspondre au format attendu par les outils d’import de base de données (COPY, LOAD DATA INFILE)
- Traitement de journaux : Convertir des champs de journal séparés par des espaces ou des pipes en format séparé par des virgules pour l’import dans des outils d’analyse
- Formatage de réponses d’API : Convertir la sortie d’API (souvent des tableaux JSON) en texte délimité pour la consommation en aval par des scripts et des tableurs
- Opérations de presse-papiers : Convertir des listes séparées par des retours à la ligne en format séparé par des virgules pour une utilisation dans les clauses SQL IN, les champs d’email ou les arguments de fonctions
Essayez ces exemples
Chaque virgule est remplacée par un caractère de tabulation. Le résultat est au format TSV (Tab-Separated Values), qui peut être collé directement dans Excel ou Google Sheets avec chaque valeur dans une colonne séparée.
Alice,Bob,Charlie,Diana Lorsque les valeurs contiennent le caractère délimiteur, elles doivent être entre guillemets. La conversion vers les tabulations supprime l'ambiguïté — les virgules à l'intérieur des valeurs entre guillemets sont conservées comme caractères littéraux, et non traitées comme des séparateurs.
"Smith, John",42,"New York, NY"