Nosso software de linha de negócios permite ao usuário salvar determinados dados como CSV . Como existem muitos formatos diferentes (todos chamados de "CSV") em uso, procuramos decidir como deve ser o "formato padrão".
Em relação aos separadores de linha / campo e escape, existe um padrão que podemos usar: RFC 4180 .
No que diz respeito à codificação de texto, o UTF-8 parece ter surgido na última década como o "formato padrão de arquivo de texto"; portanto, usaremos isso.
A única pergunta deixada em aberto é: devemos adicionar uma lista técnica no início ou não? Li várias opiniões e prós / contras sobre o uso de BOMs em geral, mas há uma recomendação "oficial" ou pelo menos algum tipo de consenso da comunidade sobre o uso de BOMs em arquivos CSV?
fonte
Respostas:
Não é para UTF-8 , mas veja as várias advertências nos comentários.
É desnecessário (o UTF-8 não possui ordem de bytes), diferentemente do UTF-16/32 e não é recomendado no padrão Unicode . Também é bastante raro ver UTF-8 com BOM "em estado selvagem", portanto, a menos que você tenha um motivo válido (por exemplo, como comentado, você estará trabalhando com software que espera a BOM), recomendo a abordagem sem BOM .
A Wikipedia menciona alguns softwares principalmente da Microsoft que força e espera uma BOM, mas, a menos que você esteja trabalhando com eles, não o use.
fonte
#!
é inválido. Na melhor das hipóteses, uma lista técnica no UTF-8 é "permitida, quando nenhum requisito específico de formato / aplicativo a impede", não é "permitida" e, como tal, não deve ser usada. Os padrões são realmente claros sobre o que NÃO DEVE.Ainda não existe uma convenção generalizada AFAIK, embora certamente UTF-8 agora seja geralmente aceito.
A BOM é um artefato terrível:
É invisível (espaço com largura zero).
Alguns softwares podem aparecer no nome da primeira coluna, não contendo apenas letras, mas essa lista técnica estranha na frente.
A linha do cabeçalho pode, porventura, ser copiada para linhas de valor que corrompem o primeiro valor.
Alguns softwares Windows precisam apenas distinguir entre uma das codificações ANSI usadas por essa máquina Windows local e o UTF-8. Bloco de notas, Excel.
O triste é que devemos apoiar a lista técnica. Talvez opcional.
Use um esquema de nomenclatura para os arquivos (...- utf8.txt, ...- utf8bom.txt).
Em muitos casos, poderíamos usar o HTML como alternativa de exportação. Isso permite definir a codificação no arquivo. Um recurso extra é a coloração de segundo plano / primeiro plano de linhas e células. O que aumenta a qualidade da exportação.
fonte
-utf8-windows.csv
é melhor. Quase todo mundo sabe o que é o Windows, no contexto de computadores, mas muito menos usuários sabem o que é uma Marca de Pedido de Byte.tschüß
lixo, quetschüß
deveriam ter sido gravados. No StackOverflow, muitos erros de TI são sobre codificações. Os usuários finais também terão problemas.