如何使用 fast-csv 将特殊字符写入节点中的 csv 文件

Posted

技术标签:

【中文标题】如何使用 fast-csv 将特殊字符写入节点中的 csv 文件【英文标题】:How do I write special characters to csv file in node with fast-csv 【发布时间】:2021-12-28 14:38:00 【问题描述】:

我有一个包含德语字符的列表,我用 fast-csv 写入 csv 文件并给了我不同的字符。

import  writeToPath  from "fast-csv";

const data = [
  
    "name": "Ästhetik Zahnarzt Hamburg City Z-24 Mö 17 / Dr. P. Michaelis, Dr. C. Khorram",
    "street_number": "Speersort 8",
    "zip_location": "20095 Hamburg, City Innenstadt",
    "phone": "040 34 45 44",
    "website": "http://www.z-24.de",
    "area": "Branche: Zahnärzte"
  
]

writeToPath("tmp.csv", data,  headers: true )
  .on("error", (err) => console.error(err))
  .on("finish", () => console.log("Done writing."));

输出是这样的: screenshot of output data

Ästhetik Zahnarzt Hamburg City Z-24 Mö 17 / Dr. P. Michaelis, Dr. C. Khorram | ... | Branche: Zahnärzte

【问题讨论】:

【参考方案1】:

这是猜测 CSV 编码的 Excel 问题。 只需指出选项writeBOM 等于true,这样Excel 就可以猜测编码是UTF-8。 最可靠的方法是直接写入 XLSX-file 以避免此类编码问题。

【讨论】:

这有点奇怪,因为如果我用 vscode 打开 csv 文件,它会显示正确的字符。但是excel有这些问题。你是对的,writeBOM: true 工作。谢谢。

以上是关于如何使用 fast-csv 将特殊字符写入节点中的 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将特殊字符原样写入 XML 文件

停止 fast-csv 节点模块的流读取

如何使用 mfc 应用程序在文件中写入特殊字符?

如何防止写入特殊字符[重复]

如何转义xml中的特殊字符

使用 C# 使用特殊字符写入 XML 文档