A especificação do formato CSV é definida na RFC 4180 . Esta especificação foi publicada porque
não existe especificação formal, o que permite uma grande variedade de interpretações de arquivos CSV
Infelizmente, desde 2005 (data de publicação da RFC), nada mudou. Ainda temos uma grande variedade de implementações. A abordagem geral definida na RFC 4180 é incluir campos que contenham caracteres como vírgulas entre aspas; no entanto, essa recomendação nem sempre é atendida por diferentes softwares.
O problema é que, em várias localidades européias, o caractere vírgula serve como ponto decimal; portanto, você escreve em 0,005
vez de 0.005
. No entanto, em outros casos, vírgulas são usadas em vez de espaços para sinalizar grupos de dígitos, por exemplo 4,000,000.00
(veja aqui ). Nos dois casos, o uso de vírgulas possivelmente levaria a erros na leitura de dados de arquivos csv, porque o seu software realmente não sabe se 0,005, 0,1
existem dois números ou quatro números diferentes (veja o exemplo aqui ).
Por último, mas não menos importante, se você armazenar texto em seu arquivo de dados, as vírgulas serão muito mais comuns no texto do que, por exemplo, ponto-e-vírgula; portanto, se o texto não estiver entre aspas, esses dados também poderão ser facilmente lidos com erros .
Nada melhora as vírgulas ou os separadores de campo piores , na medida em que os arquivos CSV são usados de acordo com as recomendações da RFC 4180 que protegem os problemas descritos acima. No entanto, se houver o risco de usar o formato CSV simplificado que não inclua campos entre aspas ou se a recomendação puder ser usada de forma inconsistente, outros separadores (por exemplo, ponto e vírgula) parecerão uma abordagem mais segura.