Node.js 生成 csv 文件,解决中文乱码问题

用 Node.js 生成 csv 文件
想使用Node.js来生成 csv 文件的话,可以自己拼接好内容后通过fs.writeFile来写入一个文件。不过还是有个问题,如果有中文字符的还是会出现乱码的情况。

接下来就是介绍一下两个库可以解决我们的问题,一个是json2csv 可以通过json的数据去生成csv文件的内容,然后在fs.writeFile,另外一个库则是iconv-lite用来把内容的编码转换为GBK格式,这样一来就能够解决中文乱码的问题。

还有一个值得一提的,就是有其他的小伙伴会用iconv这个库,不过我发现我使用npm还是cnpm都安装不上,所以就使用了iconv-lite这个库。可以注意一下这个问题。

贴一个实例:

const json2csv = require('json2csv').parse;
const iconv = require('iconv-lite');
const fs = require('fs');
function createCsv(namePath, myCars, fields) {
  return new Promise((resolve, reject) => {
    const csv = json2csv(myCars, fields);
    const newCsv = iconv.encode(csv, 'GBK'); // 转编码
    fs.writeFile(namePath, newCsv, function (err) {
      if (err) {
        reject();
        throw err;
      }
      console.log('create csv');
      resolve();
    });
  });
}
module.exports = {
  createCsv,
};

// const fields = ['recipientName', 'shipCity', 'shipState', 'shipPostalCode'];
// const myCars = [{
//   "recipientName": "是的",
//   "shipCity": 40000,
//   "shipState": "blue",
//   "shipPostalCode": "blue"
// }];
// createCsv('./namePath.csv', myCars, fields)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值