【发布时间】:2017-12-27 04:46:14
【问题描述】:
我正在使用这个 json2scv 包解析我的数据(示例 json 数据在下面的代码中描述)
我正在尝试使用以下代码在我的 nodejs 应用程序中生成一个 CSV 文件:
如果我在 Excel 中打开文件,那么在应该出现 £ 符号的任何地方都会得到 £。
var json2csv = require('json2csv');
var fs = require('fs');
var fields = ['car', 'price', 'color'];
var myCars = [
{
"car": "Audi",
"price": "£40000",
"color": "blue"
}, {
"car": "BMW",
"price": "£35000",
"color": "black"
}, {
"car": "Porsche",
"price": "£60000",
"color": "green"
}
];
var csvStr = json2csv({ data: myCars, fields: fields, del: ',' });
fs.writeFile('file.csv', csvStr, { encoding: 'utf8' },function(err) {
if (err) throw err;
console.log('file saved');
});
有什么想法吗?
谢谢。
【问题讨论】:
-
您遇到了文本编码问题。您正在保存 UTF-8,但在某些时候这被读取为 ISO-8859-1(或类似)。尝试在文件开头添加 BOM,保存在 8859-1 中,或者在加载时明确指定编码。
-
@Richard 添加 BOM "\ufeff" 并使用编码 "utf16le" 解决了这个问题。感谢您的反馈。
标签: javascript node.js file csv encoding