Maison > interface Web > js tutoriel > Exporter JSON vers CSV : une note sur CSV et Unicode

Exporter JSON vers CSV : une note sur CSV et Unicode

王林
Libérer: 2024-07-27 00:00:03
original
509 Les gens l'ont consulté

Export JSON to CSV: a note on CSV and Unicode

Il existe plusieurs bibliothèques JS qui permettent d'exporter vers Excel. Mais que se passe-t-il si nous voulons suivre une approche minimaliste en évitant les dépendances supplémentaires ?

L'approche la plus simple serait de produire un CSV à partir de JSON qui peut facilement être ouvert dans Excel.

Mais avant de montrer la logique de conversion, comprenons ce qu'est le CSV et quel encodage nous utiliserons lors de la création d'un fichier CSV.

Format CSV

Ce format commun RFC 4180 et type MIME pour les fichiers CSV (valeurs séparées par des virgules) spécifie la définition du format CSV. Notez qu'il s'agit uniquement d'un mémo car le format CSV n'est pas officiellement standardisé.

Principales définitions

  1. Chaque enregistrement est situé sur une ligne distincte, délimitée par un saut de ligne (CRLF).
  2. Le dernier enregistrement du fichier peut avoir ou non un saut de ligne de fin.
  3. L'en-tête doit contenir le même nombre de champs dans tout le fichier.
  4. Chaque champ peut ou non être placé entre guillemets.
  5. Les champs contenant des sauts de ligne (CRLF), des guillemets doubles et des virgules doivent être placés entre guillemets doubles.
  6. Si des guillemets doubles sont utilisés pour délimiter des champs, alors un guillemet double apparaissant à l'intérieur d'un champ doit être échappé en le précédant d'un autre guillemet double.

Codage

Dans mes données JSON, j'ai des caractères æ å ø du jeu de caractères ISO Latin-1 (ISO/IEC 8859-1) qui doivent être pris en compte lors de la création d'un fichier csv.

Quelques extraits de la version standard Unicode® 15.0 à considérer.

Unicode contre UTF-8/16/32

De la norme Unicode® version 15.0 :

  • Unicode est la norme universelle de codage de caractères pour les caractères écrits et le texte, contenant 149 186 caractères provenant des écritures du monde entier.
  • Les caractères Unicode sont représentés sous l'une des trois formes d'encodage : une forme 32 bits (UTF-32), une forme 16 bits (UTF-16) et une forme 8 bits (UTF-8).
  • Le Consortium Unicode approuve pleinement l'utilisation de l'une des trois formes de codage Unicode comme moyen conforme de mise en œuvre de la norme Unicode. Il est important de ne pas tomber dans le piège consistant à essayer de distinguer « UTF-8 et Unicode », par exemple. UTF-8, UTF-16 et UTF-32 sont tous des moyens également valables et conformes d'implémenter les caractères codés de la norme Unicode.

Marque d'ordre des octets (BOM)

  • Le caractère U+FEFF (UTF-8 EF BB BF) utilisé pour la marque d'ordre des octets est nommé espace insécable de largeur nulle.
  • Les formes de codage UTF-16 et UTF-32 du texte brut Unicode sont sensibles à l'ordre des octets utilisé lors de l'écriture de données dans un fichier.
  • Identification de la séquence d'octets au début d'un le flux de données peut être considéré comme une indication presque certaine que le flux de données utilise le schéma de codage UTF-8.

En bref, l'ajout d'un espace insécable de largeur nulle avant la chaîne CSV obligera Excel à appliquer l'encodage UTF-8 au lieu de 1252 : Europe occidentale (Windows) ou un autre encodage qu'Excel choisira au cas où le caractère U+FEFF n'est pas fourni.

Je montrerai la différence entre produire un fichier CSV avec un espace insécable de largeur nulle et sans espace dans le prochain article de cette série...

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal