La spécification du format CSV est définie dans la RFC 4180 . Cette spécification a été publiée parce que
il n'existe aucune spécification formelle permettant une grande variété d'interprétations de fichiers CSV
Malheureusement, depuis 2005 (date de publication du RFC), rien n'a changé. Nous avons toujours une grande variété d'implémentations. L'approche générale définie dans la RFC 4180 consiste à inclure des champs contenant des caractères tels que des virgules entre guillemets. Cette recommandation n'est toutefois pas toujours respectée par un logiciel différent.
Le problème est que, dans divers environnements linguistiques européens, la virgule sert de point décimal, vous écrivez donc à la 0,005
place de 0.005
. Cependant, dans d’autres cas, des virgules sont utilisées au lieu d’espaces pour signaler des groupes de chiffres, par exemple 4,000,000.00
(voir ici ). Dans les deux cas, l’utilisation de virgules pourrait entraîner des erreurs lors de la lecture des données à partir de fichiers csv, car votre logiciel ne sait pas vraiment s’il 0,005, 0,1
s’agit de deux nombres ou de quatre nombres différents (voir exemple ici ).
Enfin et surtout, si vous stockez du texte dans votre fichier de données, les virgules sont beaucoup plus courantes dans le texte que, par exemple, les points-virgules. Par conséquent, si votre texte n'est pas placé entre guillemets, ces données peuvent également être lues facilement avec des erreurs. .
Rien ne rend les virgules meilleures, ni les séparateurs de champs pires dans la mesure où les fichiers CSV sont utilisés conformément aux recommandations de la RFC 4180 qui protègent des problèmes décrits ci-dessus. Toutefois, si le format CSV simplifié risque de ne pas contenir de champs entre guillemets, ou si la recommandation peut être utilisée de manière incohérente, les autres séparateurs (le point-virgule, par exemple) semblent plus sûrs.