需求很简单,用node读取csv文件并处理,用了几种方式,要么读取完乱码,要么格式难处理(由于内容中含有大量文字,其中包含各种特殊字符),最后使用csvtojson配合iconv-lite完美解决这个问题,代码很简单。
需要先安装csvtojson和iconv-lite
npm install csvtojson
npm install iconv-lite
代码如下:
const csv = require('csvtojson')
const iconv = require('iconv-lite');
const converter = csv()
.fromFile('./csv/111.csv',{encoding:'binary'})
.then((json) => {
//binary和fromFile中的文件读取方式要一致
var buf = new Buffer(JSON.stringify(json), 'binary');//第一个参数格式是字符串
var str = iconv.decode(buf, 'GBK');//原文编码我这是GBK
str=JSON.parse(JSON.stringify(str))//解码后为字符串,需要先转成json字符串
var data=eval(str)
//输出结果:[{id:'123456',content:'这是内容'}]
})