user7371424
user7371424

Reputation:

I get ASCII instead of utf-16 in csvtojson

I am using the csvtojson npm package, but I get the conversion in ascii instead of text as utf16. This is the function I use:

const fs = require('fs');
const csvFilePath='./download/negocio.csv'
const csv=require('csvtojson');
app.get('/api', async(req, res) => {

  const jsonArray=await csv().fromFile(csvFilePath);
  res.json(jsonArray);
});

This is what I get:

[{"��K\u0000e\u0000y\u0000w\u0000o\u0000r\u0000d\u0000 \u0000S\u0000t\u0000a\u0000t\u0000s\u0000 \u00002\u00000\u00001\u00009\u0000-\u00000\u00008\u0000-\u00002\u00004\u0000 \u0000a\u0000t\u0000 \u00001\u00007\u0000_\u00000\u00000\u0000_\u00004\u00009\u0000":"\u00001\u0000 \u0000d\u0000e\u0000 \u0000a\u0000g\u0000o\u0000s\u0000t\u0000o\u0000 \u0000d\u0000e\u0000 \u00002\u00000\u00001\u00008\u0000 \u0000-\u0000 \u00003\u00001\u0000 \u0000d\u0000e\u0000 \u0000j\u0000u\u0000l\u0000i\u0000o\u0000 \u0000d\u0000e\u0000 \u00002\u00000\u00001\u00009\u0000"},{"��K\u0000e\u0000y\u0000w\u0000o\u0000r\u0000d\u0000 \u0000S\u0000t\u0000a\u0000t\u0000s\u0000 \u00002\u00000\u00001\u00009\u0000-\u00000\u00008\u0000-\u00002\u00004\u0000 \u0000a\u0000t\u0000 \u00001\u00007\u0000_\u00000\u00000\u0000_\u00004\u00009\u0000":"\u0000K\u0000e\u0000y\u0000w\u0000o\u0000r\u0000d\u0000\t\u0000C\u0000u\u0000r\u0000r\u0000e\u0000n\u0000c\u0000y\u0000\t\u0000A\u0000v\u0000g\u0000.\u0000 \u0000m\u0000o\u0000n\u0000t\u0000h\u0000l\u0000y\u0000 \u0000s\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000\t\u0000M\u0000i\u0000n\u0000 \u0000s\u0000e\u0000a\u0000r\u0000c\u0000h\u0000 \u0000v\u0000o\u0000l\u0000u\u0000m\u0000e\u0000\t\u0000M\u0000a\u0000x\u0000 \u0000s\u0000e\u0000a\u0000r\u0000c\u0000h\u0000 \u0000v\u0000o\u0000l\u0000u\u0000m\u0000e\u0000\t\u0000C\u0000o\u0000m\u0000p\u0000e\u0000t\u0000i\u0000t\u0000i\u0000o\u0000n\u0000\t\u0000C\u0000o\u0000m\u0000p\u0000e\u0000t\u0000i\u0000t\u0000i\u0000o\u0000n\u0000 \u0000(\u0000i\u0000n\u0000d\u0000e\u0000x\u0000e\u0000d\u0000 \u0000v\u0000a\u0000l\u0000u\u0000e\u0000)\u0000\t\u0000T\u0000o\u0000p\u0000 \u0000o\u0000f\u0000 \u0000p\u0000a\u0000g\u0000e\u0000 \u0000b\u0000i\u0000d\u0000 \u0000(\u0000l\u0000o\u0000w\u0000 \u0000r\u0000a\u0000n\u0000g\u0000e\u0000)\u0000\t\u0000T\u0000o\u0000p\u0000 \u0000o\u0000f\u0000 \u0000p\u0000a\u0000g\u0000e\u0000 \u0000b\u0000i\u0000d\u0000 \u0000(\u0000h\u0000i\u0000g\u0000h\u0000 \u0000r\u0000a\u0000n\u0000g\u0000e\u0000)\u0000\t\u0000A\u0000d\u0000 \u0000i\u0000m\u0000p\u0000r\u0000e\u0000s\u0000s\u0000i\u0000o\u0000n\u0000 \u0000s\u0000h\u0000a\u0000r\u0000e\u0000\t\u0000O\u0000r\u0000g\u0000a\u0000n\u0000i\u0000c\u0000 \u0000i\u0000m\u0000p\u0000r\u0000e\u0000s\u0000s\u0000i\u0000o\u0000n\u0000 \u0000s\u0000h\u0000a\u0000r\u0000e\u0000\t\u0000O\u0000r\u0000g\u0000a\u0000n\u0000i\u0000c\u0000 \u0000a\u0000v\u0000e\u0000r\u0000a\u0000g\u0000e\u0000 \u0000p\u0000o\u0000s\u0000i\u0000t\u0000i\u0000o\u0000n\u0000\t\u0000I\u0000n\u0000 \u0000a\u0000c\u0000c\u0000o\u0000u\u0000n\u0000t\u0000?\u0000\t\u0000I\u0000n\u0000 \u0000p\u0000l\u0000a\u0000n\u0000?\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000A\u0000u\u0000g\u0000 \u00002\u00000\u00001\u00008\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000S\u0000e\u0000p\u0000 \u00002\u00000\u00001\u00008\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000O\u0000c\u0000t\u0000 \u00002\u00000\u00001\u00008\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000N\u0000o\u0000v\u0000 \u00002\u00000\u00001\u00008\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000D\u0000e\u0000c\u0000 \u00002\u00000\u00001\u00008\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000J\u0000a\u0000n\u0000 \u00002\u00000\u00001\u00009\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000F\u0000e\u0000b\u0000 \u00002\u00000\u00001\u00009\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000M\u0000a\u0000r\u0000 \u00002\u00000\u00001\u00009\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000A\u0000p\u0000r\u0000 \u00002\u00000\u00001\u00009\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000M\u0000a\u0000y\u0000 \u00002\u00000\u00001\u00009\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000J\u0000u\u0000n\u0000 \u00002\u00000\u00001\u00009\u0000\t\u0000S\u0000e\u0000a\u0000r\u0000c\u0000h\u0000e\u0000s\u0000:\u0000 \u0000J\u0000u\u0000l\u0000 \u00002\u00000\u00001\u00009\u0000"},

enter image description here

Upvotes: 2

Views: 1563

Answers (1)

Thecave3
Thecave3

Reputation: 797

You should encode the data with the toString() method: from the examples of csvtojson:

const csv=require('csvtojson')
csv()
.on('data',(data)=>{
    //data is a buffer object
    const jsonStr= data.toString('utf8')
})

For your problem you should probably do:

const jsonArray=await csv().fromFile(csvFilePath);
jsonArray =  jsonArray.toString('utf16');
res.json(jsonArray);

Upvotes: 1

Related Questions