Português (Brasil)

Dados e planilhas · CSV Limpador

CSV Escapando dialetos: aspas duplas, barras invertidas e exportações de banco de dados

· Fundo

csv análise interoperabilidade

Um caminho CSV com aspas duplas sendo bem-sucedido enquanto um escape de barra invertida permanece como texto literal
Ilustração vetorial original ToolAcre

RFC 4180 diz para dobrar aspas; várias ferramentas de banco de dados exportam com barras invertidas. Este post explica as convenções de escape em circulação, de onde cada uma veio e por que um arquivo válido em um dialeto quebra em outro.

Uma exportação de banco de dados que uma planilha lê com barras invertidas — duas tradições que escapam e colidem em um arquivo

Uma exportação pode conter uma barra invertida seguida de uma cotação porque seu produtor segue uma convenção de estilo de linguagem de programação, enquanto um analisador orientado a planilhas espera cotações duplicadas. Alimentar um dialeto com outro não cria um compromisso neutro. Ele muda onde o estado entre aspas abre e fecha ou deixa caracteres de escape nos dados.

ToolAcre suporta uma regra clara: os campos podem ser colocados entre aspas duplas e uma aspa interna é representada por duas aspas. A barra invertida não tem função de escape. Identificar esse contrato antes do carregamento é mais seguro do que pedir ao faxineiro que adivinhe qual pontuação o produtor pretendia.

A convenção RFC - coloque entre aspas duplas e duplique qualquer aspa interna, sem nenhum caractere de escape

Para um valor como `She said "hello", then left`, CSV estilo RFC circunda o campo e grava as marcas internas duas vezes. O delimitador permanece dentro do estado entre aspas e cada par duplicado retorna uma aspa literal. A serialização aplica a mesma transformação ao contrário.

Os campos são colocados entre aspas quando contêm o delimitador atual, aspas, LF, CR ou espaços adjacentes, ou sempre que Citar todos os campos estiver selecionado. Não há caractere de escape separado. Esta pequena gramática é testada para delimitadores, finais de registros incorporados e pares de aspas.

A tradição C — aspas com escape de barra invertida, novas linhas e delimitadores herdados de linguagens de programação e alguns carregadores de banco de dados

Alguns sistemas de origem podem definir convenções de barra invertida, mas ToolAcre não possui opção para elas. Uma barra invertida é anexada ao campo atual como qualquer caractere comum. Uma cotação a seguir é então interpretada de acordo com se o analisador está no estado entre aspas e se possui uma cotação emparelhada.

Conseqüentemente, uma exportação de barra invertida deve ser analisada por uma ferramenta configurada para esse dialeto antes da conversão para aspas duplas CSV. Pesquisar e substituir é arriscado porque barras invertidas literais e sequências de escape podem ser parecidas. A gramática de origem deve decidir quais são sintaxe.

O escape de barra invertida é um dialeto alternativo não suportado, e não um modo que ToolAcre pode ler

A pasta de trabalho nomeia produtos de banco de dados e bibliotecas de quadros de dados, mas seus padrões e modos configuráveis ​​não estão documentados neste repositório. Este artigo não atribui um dialeto a nenhum fornecedor específico. Consulte a documentação exata do exportador ou carregador usada pelo fluxo de trabalho.

Capture o comando e as opções que produziram o arquivo. Um produto pode suportar vários modos, portanto seu nome por si só não é um dialeto. A reprodutibilidade vem da configuração mais uma amostra contendo casos extremos de delimitador, aspas, nova linha e barra invertida.

Padrões específicos de bancos de dados e bibliotecas exigem documentação própria e não são reivindicados aqui

Sob este analisador, `"a \"quote\"",b` não significa o que um leitor de estilo C poderia esperar, porque as barras permanecem no texto e as aspas governam o estado CSV. Por outro lado, um par duplo dentro de um campo entre aspas torna-se uma aspa em vez de dois caracteres literais.

Uma incompatibilidade pode acionar colunas deslocadas ou um aviso de aspas não fechadas, ou pode ser analisada em strings de aparência errada sem erros estruturais. Visualize linhas representativas e compare-as com o produtor. O sucesso sintático por si só não pode certificar que a semântica de escape corresponda.

De acordo com as regras ToolAcre, as barras invertidas permanecem literais e as aspas duplas são o único escape de aspas

Escreva uma célula contendo uma vírgula e uma aspa como RFC CSV: `"She said ""hi"", then left"`. ToolAcre retorna o valor exato `She said "hi", then left`. Escreva a citação interna com barras invertidas e observe que a barra não tem proteção especial.

A comparação demonstra regras do analisador sem depender da marca do banco de dados. Após uma análise correta, o download produz aspas duplicadas de forma consistente. Após uma análise incompatível, a exportação apenas padroniza as células erradas; portanto, resolva o dialeto de origem antes de confiar no resultado.

O que isso não cobre: ​​exportações binárias, arquivos de largura fixa e caracteres de escape totalmente personalizados

Exportações binárias, registros de largura fixa e caracteres de escape personalizados estão fora da rota. Uma cotação não fechada é relatada e consome a entrada restante como um campo; o limpador não infere aonde pertencia um close perdido. Essa ambiguidade não pode ser reparada genericamente.

A interface também não converte um dialeto de barra invertida automaticamente. Use um analisador que nomeie explicitamente o caractere de escape, obtenha uma tabela de strings verificadas e, em seguida, serialize para a convenção de destino. Cada gramática deve ser aplicada uma vez em um limite conhecido.

Conheça o dialeto em ambas as extremidades - como o reparo de cotação do ToolAcre CSV Cleaner normaliza os campos em direção a cotações consistentes que os analisadores padrão leem

Conheça os dois pontos finais. ToolAcre é apropriado quando a fonte segue aspas duplas CSV ou quando outro analisador já normalizou um dialeto diferente em células verificadas. Sua saída oferece cotações mínimas ou em todos os campos consistentes e duplica cada cotação incorporada.

Não confunda um download limpo com detecção de dialeto. O detector automático escolhe delimitadores, não gramáticas de escape. Um separador confiável de registros de transferência, regra de cotação, política de nova linha e codificação juntos, testa uma amostra adversária antes da movimentação dos dados de produção.