"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Exportar JSON para CSV: uma observação sobre CSV e Unicode

Exportar JSON para CSV: uma observação sobre CSV e Unicode

Publicado em 01/08/2024
Navegar:801

Export JSON to CSV: a note on CSV and Unicode

Existem várias bibliotecas JS que permitem a exportação para Excel. Mas e se quisermos seguir uma abordagem minimalista evitando dependências extras?

A abordagem mais simples seria produzir CSV a partir de JSON que possa ser facilmente aberto no Excel.

Mas antes de mostrar a lógica de conversão, vamos entender o que é CSV e qual codificação devemos usar ao criar um arquivo CSV.

Formato CSV

Este formato comum RFC 4180 e tipo MIME para arquivos de valores separados por vírgula (CSV) especifica a definição do formato CSV. Observe que este é um memorando apenas porque o formato CSV não é oficialmente padronizado.

Principais definições

  1. Cada registro está localizado em uma linha separada, delimitada por uma quebra de linha (CRLF).
  2. O último registro do arquivo pode ou não ter uma quebra de linha final.
  3. O cabeçalho deve conter o mesmo número de campos em todo o arquivo.
  4. Cada campo pode ou não estar entre aspas duplas.
  5. Campos contendo quebras de linha (CRLF), aspas duplas e vírgulas devem ser colocados entre aspas duplas.
  6. Se aspas duplas forem usadas para delimitar campos, então uma aspa dupla que aparece dentro de um campo deve ser escapada precedendo-a com outra aspa dupla.

Codificação

Em meus dados JSON, tenho caracteres æ å ø do conjunto de caracteres ISO Latin-1 (ISO/IEC 8859-1) que devem ser considerados ao criar um arquivo csv.

Alguns trechos do padrão Unicode® versão 15.0 a serem considerados.

Unicode versus UTF-8/16/32

Do padrão Unicode® versão 15.0:

  • Unicode é o padrão universal de codificação de caracteres para caracteres escritos e texto, contendo 149.186 caracteres dos scripts do mundo.
  • Os caracteres Unicode são representados em uma das três formas de codificação: uma forma de 32 bits (UTF-32), uma forma de 16 bits (UTF-16) e uma forma de 8 bits (UTF-8).
  • O Consórcio Unicode endossa totalmente o uso de qualquer uma das três formas de codificação Unicode como uma forma compatível de implementar o Padrão Unicode. É importante não cair na armadilha de tentar distinguir “UTF-8 versus Unicode”, por exemplo. UTF-8, UTF-16 e UTF-32 são formas igualmente válidas e compatíveis de implementar os caracteres codificados do padrão Unicode.

Marca de ordem de bytes (BOM)

  • O caractere U FEFF (UTF-8 EF BB BF) usado para a marca de ordem de bytes é denominado espaço sem quebra de largura zero.
  • As formas de codificação UTF-16 e UTF-32 de texto simples Unicode são sensíveis à ordem de bytes usada ao gravar dados em um arquivo.
  • Identificação da sequência de bytes no início de um O fluxo de dados pode ser considerado uma indicação quase certa de que o fluxo de dados está usando o esquema de codificação UTF-8.

Resumindo, adicionar espaço sem quebra de largura zero antes da string CSV forçará o Excel a aplicar a codificação UTF-8 em vez de 1252: Europa Ocidental (Windows) ou alguma outra codificação que o Excel escolherá caso o caractere U FEFF seja não fornecido.

Mostrarei a diferença entre produzir arquivo CSV com espaço sem interrupção de largura zero e sem ele no próximo post desta série...

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/andrewelans/export-json-to-csv-what-is-csv-and-unicode-2341?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3