「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JSON を CSV にエクスポート: CSV と Unicode に関するメモ

JSON を CSV にエクスポート: CSV と Unicode に関するメモ

2024 年 8 月 1 日に公開
ブラウズ:111

Export JSON to CSV: a note on CSV and Unicode

Excel へのエクスポートを可能にする JS ライブラリが複数あります。しかし、余分な依存関係を回避する最小限のアプローチに従いたい場合はどうなるでしょうか。

最も簡単なアプローチは、Excel で簡単に開くことができる JSON から CSV を生成することです。

ただし、変換ロジックを説明する前に、CSV とは何か、CSV ファイルを作成するときにどのエンコーディングを使用するかを理解しましょう。

CSV形式

この RFC 4180 カンマ区切り値 (CSV) ファイルの共通形式と MIME タイプでは、CSV 形式の定義を指定します。なお、CSV形式は正式に標準化されていないため、あくまでメモです。

主な定義

  1. 各レコードは、改行 (CRLF) で区切られた個別の行に配置されます。
  2. ファイルの最後のレコードには、終了改行がある場合とない場合があります。
  3. ヘッダーには、ファイル全体で同じ数のフィールドが含まれている必要があります。
  4. 各フィールドは二重引用符で囲まれる場合と囲まれない場合があります。
  5. 改行 (CRLF)、二重引用符、カンマを含むフィールドは二重引用符で囲む必要があります。
  6. フィールドを囲むために二重引用符が使用されている場合、フィールド内にある二重引用符は、その前に別の二重引用符を付けてエスケープする必要があります。

エンコーディング

JSON データには、CSV ファイルを作成するときに考慮する必要がある ISO Latin-1 (ISO/IEC 8859-1) 文字セットの文字 æ å ø が含まれています。

考慮すべき Unicode® 標準バージョン 15.0 の一部の抜粋。

Unicode と UTF-8/16/32 の比較

Unicode® 標準バージョン 15.0 より:

  • Unicode は、書かれた文字とテキストの汎用文字エンコーディング標準であり、世界中の文字の 149,186 文字が含まれています。
  • Unicode 文字は、32 ビット形式 (UTF-32)、16 ビット形式 (UTF-16)、および 8 ビット形式 (UTF-8) の 3 つのエンコード形式のいずれかで表されます。
  • Unicode コンソーシアムは、Unicode 標準を実装する準拠した方法として、3 つの Unicode エンコード形式のいずれかの使用を全面的に承認します。たとえば、「UTF-8 と Unicode」を区別しようとする罠に陥らないことが重要です。 UTF-8、UTF-16、および UTF-32 はすべて、Unicode 標準のエンコード文字を実装するための同様に有効かつ準拠した方法です。

バイト オーダー マーク (BOM)

  • バイト オーダー マークに使用される文字 U FEFF (UTF-8 EF BB BF) は、ゼロ幅ノーブレーク スペースと呼ばれます。
  • Unicode プレーン テキストの UTF-16 および UTF-32 エンコード形式は、ファイルにデータを書き込むときに使用されるバイト順序の影響を受けます。
  • 先頭のバイト シーケンスの識別 データ ストリームは、データ ストリームが UTF-8 エンコード スキームを使用していることをほぼ確実に示しているとみなすことができます。

つまり、CSV 文字列の前に幅 0 のノーブレーク スペースを追加すると、Excel は 1252: 西ヨーロッパ (Windows) または U FEFF 文字が含まれている場合に選択されるその他のエンコーディングではなく、UTF-8 エンコーディングを適用するように強制されます。提供されていない。

このシリーズの次の投稿で、幅ゼロのノーブレークスペースを使用して CSV ファイルを作成する場合と使用しない場合の違いを示します...

リリースステートメント この記事は次の場所に転載されています: https://dev.to/andrewelans/export-json-to-csv-what-is-csv-and-unicode-2341?1 侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3