」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 將 JSON 匯出為 CSV:關於 CSV 和 Unicode 的說明

將 JSON 匯出為 CSV:關於 CSV 和 Unicode 的說明

發佈於2024-08-01
瀏覽:597

Export JSON to CSV: a note on CSV and Unicode

有多個JS庫允許匯出到excel。但是,如果我們想遵循極簡主義方法來避免額外的依賴,該怎麼辦?

最簡單的方法是從 JSON 產生 CSV,可以輕鬆地在 Excel 中開啟。

但在展示轉換邏輯之前,讓我們先了解一下 CSV 是什麼以及在建立 CSV 檔案時應使用哪種編碼。

CSV 格式

此 RFC 4180 逗號分隔值 (CSV) 檔案的通用格式和 MIME 類型指定 CSV 格式的定義。請注意,這只是一個備忘錄,因為 CSV 格式尚未正式標準化。

主要定義

  1. 每筆記錄位於單獨的行上,由換行符號 (CRLF) 分隔。
  2. 文件中的最後一筆記錄可能有也可能沒有結束換行符。
  3. 整個文件中標頭應包含相同數量的欄位。
  4. 每個欄位可以用雙引號括起來,也可以不用雙引號括起來。
  5. 包含換行符號 (CRLF)、雙引號和逗號的欄位應括在雙引號中。
  6. 如果使用雙引號括住字段,則字段內出現的雙引號必須透過在其前面加上另一個雙引號來轉義。

編碼

在我的 JSON 資料中,我有來自 ISO Latin-1 (ISO/IEC 8859-1) 字元集的字元 æ å ø,在建立 csv 檔案時必須考慮這些字元。

需要考慮的 Unicode® 標準版本 15.0 的一些摘錄。

Unicode 與 UTF-8/16/32

來自 Unicode® 標準版本 15.0:

  • Unicode 是書寫字元和文字的通用字元編碼標準,包含來自世界各地文字的 149,186 個字元。
  • Unicode 字元以三種編碼形式之一表示:32 位元形式 (UTF-32)、16 位元形式 (UTF-16) 和 8 位元形式 (UTF-8)。
  • Unicode 聯盟完全認可使用三種 Unicode 編碼形式中的任何一種作為實現 Unicode 標準的一致方式。例如,重要的是不要陷入試圖區分「UTF-8 與 Unicode」的陷阱。 UTF-8、UTF-16 和 UTF-32 都是實現 Unicode 標準編碼字元的同等有效且一致的方法。

位元組順序標記 (BOM)

  • 用於位元組順序標記的字元 U FEFF (UTF-8 EF BB BF) 被命名為零寬度無中斷空格。
  • Unicode 純文字的 UTF-16 和 UTF-32 編碼形式對將資料寫入檔案時所使用的位元組順序敏感。
  • a開頭的位元組序列標識 資料流可以被視為資料流正在使用 UTF-8 編碼方案的近乎確定的指示。

簡而言之,在CSV 字串之前添加零寬度不間斷空格將強制Excel 應用UTF-8 編碼而不是1252:西歐(Windows) 或Excel 在U FEFF 字元為以下情況時將選擇的其他編碼不提供。

我將在本系列的下一篇文章中展示使用零寬度不間斷空格來產生 CSV 檔案和不使用零寬度不間斷空格的 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