通过SSH读取CSV并转换为JSON



这是这个问题的重复

下面是我要处理的代码:

let Client = require('ssh2-sftp-client');
let sftp = new Client();
var csv = require("csvtojson");
sftp.connect({
host: 'HOST',
port: 'PORT',
username: 'USERNAME',
password: 'PASSWORD'
}).then(() => {
return sftp.get('/home/user/etc/testfile.csv');
}).then((data) => {
csv()
.fromString(data.toString()) // changed this from  .fromStream(data)
.subscribe(function(jsonObj) { //single json object will be emitted for each csv line
// parse each json asynchronously
return new Promise(function(resolve, reject) {
resolve()
console.log(jsonObj);
})
})
}).catch((err) => {
console.log(err, 'catch error');
});

我可以读回CSV数据,并可以看到它进入JSON格式的console.log(jsonObj),但数据是不可读的,所有'x00ox00nx00 " ..

我不知道该怎么做://异步解析每个json

谁能帮助找出如何解析CSV/JSON从缓冲区回来后?

空字节x00指向编码/解码问题。CSV文件可能使用UTF-16编码,但Buffer.toString()默认使用UTF-8解码数据。您可以将其更改为data.toString('utf16le')(或data.toString('ucs2'))以强制使用正确的编码。

相关内容

  • 没有找到相关文章

最新更新