从csv到json,未知符号nodejs

时间:2018-03-04 08:25:55

标签: javascript json node.js csv

真的我不知道该怎么办。请帮忙解决这个问题。我有一个CSV文件,我把它转移到一个数组:

import csvToJson from 'convert-csv-to-json';
import fs from 'fs';

const URL_01 = `${__dirname}/URL/price.csv`;

//Unnecessary code removed for clarity...

app.get('/all', (req, res) => {
    let json = csvToJson.getJsonFromCsv(URL_01);
    res.send(json);
});

我得到了这个: enter image description here

如何以UTF-8获取正确的数据?

3 个答案:

答案 0 :(得分:0)

尝试使用 csvtojson 库而不是convert-csv-to-json。

您将在此处看到示例: https://www.npmjs.com/package/csvtojson

答案 1 :(得分:0)

尝试在JSON.parse(JSON.stringify())中包装来自csvToJson的输出;

app.get('/all', (req, res) => {
     let json = csvToJson.getJsonFromCsv(URL_01);
     res.send(JSON.parse(JSON.stringify(json)));
});

JSON.Stringify()可能会解析导致错误的数据。但是,当然,您需要使用JSON.parse()将其从String转换回JSON。虽然,如果不知道问题字符就很难说。

答案 2 :(得分:0)

策略应该是:

var iconv = require('iconv-lite');
var csv = require('csv');

var converterStream = iconv.decodeStream('win1251');

fs.createReadStream('file-in-win1251.txt')
  .pipe(iconv.decodeStream('win1251'))
  .pipe(csv.parse())
  .pipe(csv.stringify())
  .pipe(process.stdout);