"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Exportar JSON a CSV: una nota sobre CSV y Unicode

Exportar JSON a CSV: una nota sobre CSV y Unicode

Publicado el 2024-08-01
Navegar:506

Export JSON to CSV: a note on CSV and Unicode

Existen varias bibliotecas JS que permiten exportar para sobresalir. Pero, ¿qué pasa si queremos seguir un enfoque minimalista evitando dependencias adicionales?

El enfoque más simple sería producir CSV a partir de JSON que se pueda abrir fácilmente en Excel.

Pero antes de mostrar la lógica de conversión, comprendamos qué es CSV y qué codificación usaremos al crear un archivo CSV.

formato CSV

Este formato común RFC 4180 y tipo MIME para archivos de valores separados por comas (CSV) especifica la definición del formato CSV. Tenga en cuenta que esto es solo una nota ya que el formato CSV no está estandarizado oficialmente.

Definiciones principales

  1. Cada registro se ubica en una línea separada, delimitada por un salto de línea (CRLF).
  2. El último registro del archivo puede tener o no un salto de línea final.
  3. El encabezado debe contener la misma cantidad de campos en todo el archivo.
  4. Cada campo puede o no estar entre comillas dobles.
  5. Los campos que contienen saltos de línea (CRLF), comillas dobles y comas deben estar entre comillas dobles.
  6. Si se utilizan comillas dobles para encerrar campos, entonces las comillas dobles que aparecen dentro de un campo se deben evitar precediéndolas con otra comilla doble.

Codificación

En mis datos JSON tengo caracteres æ å ø del conjunto de caracteres ISO Latin-1 (ISO/IEC 8859-1) que deben tenerse en cuenta al crear un archivo csv.

Algunos extractos de Unicode® Standard Versión 15.0 a considerar.

Unicode frente a UTF-8/16/32

De la versión 15.0 del estándar Unicode®:

  • Unicode es el estándar universal de codificación de caracteres para caracteres escritos y texto, y contiene 149,186 caracteres de las escrituras del mundo.
  • Los caracteres Unicode se representan en una de tres formas de codificación: una forma de 32 bits (UTF-32), una forma de 16 bits (UTF-16) y una forma de 8 bits (UTF-8).
  • El Consorcio Unicode respalda plenamente el uso de cualquiera de las tres formas de codificación Unicode como una forma conforme de implementar el Estándar Unicode. Es importante no caer en la trampa de intentar distinguir “UTF-8 versus Unicode”, por ejemplo. UTF-8, UTF-16 y UTF-32 son formas igualmente válidas y conformes de implementar los caracteres codificados del estándar Unicode.

Marca de orden de bytes (BOM)

  • El carácter U FEFF (UTF-8 EF BB BF) utilizado para la marca de orden de bytes se denomina espacio sin interrupción de ancho cero.
  • Las formas de codificación UTF-16 y UTF-32 de texto sin formato Unicode son sensibles al orden de bytes que se utiliza al escribir datos en un archivo.
  • Identificación de la secuencia de bytes al comienzo de un El flujo de datos puede tomarse como una indicación casi segura de que el flujo de datos está utilizando el esquema de codificación UTF-8.

En resumen, agregar un espacio sin interrupciones de ancho cero antes de la cadena CSV obligará a Excel a aplicar la codificación UTF-8 en lugar de 1252: Europa occidental (Windows) o alguna otra codificación que Excel elegirá en caso de que el carácter U FEFF sea no provisto.

Mostraré la diferencia entre producir un archivo CSV con espacio sin separación de ancho cero y sin él en la próxima publicación de esta serie...

Declaración de liberación Este artículo se reproduce en: https://dev.to/andrewelans/export-json-to-csv-what-is-csv-and-unicode-2341?1 Si hay alguna infracción, comuníquese con [email protected] para borrarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3