使用 fs.writeFileSync 生成的 csv 文件是 UTF-8 不带 BOM 格式的,导致用 excel 打开时候不识别为 UTF-8 格式,所以乱码。
file.js
const { appendFileSync } = require('fs');
appendFileSync('test.csv', '追加的数据', {
encoding: 'utf8',
mode: 0o666,
flag: 'a',
}, (err) => {
if (err) throw err;
});
运行命令:node file.js
解决办法:在文件开关加上 \uFEFF 即可
file.js
const { appendFileSync } = require('fs');
appendFileSync('test.csv', '\uFEFF追加的数据', {
encoding: 'utf8',
mode: 0o666,
flag: 'a',
}, (err) => {
if (err) throw err;
});
删除 test.csv 文件,运行命令:node file.js