【发布时间】:2017-08-21 07:57:21
【问题描述】:
提前我不得不说我是 node.js 的新手,可能还没有完全理解它。
我现在陷入了一个我无法解决的相当明显的问题。我正在通过节点模块“ftp”从 FTP 服务器导入 CSV 文件 然后我将文件作为流接收,然后使用节点模块“csvtojson”将其转换为 JSON。
到目前为止,效果非常好。但是现在我注意到我偶然发现了一些来自德语的 Umlaut 字符,这些字符不断使我的解决方案崩溃。我发现我必须将文件流转换为 UTF8,但我不知道如何。
我已经用toString() 方法和其他几个节点模块尝试过,但也没有用。
我的代码如下所示:
getCsvFromFtp: function (profile) {
init(profile);
return new Promise((resolve, reject) => {
client.on('ready', function () {
client.get(file, function (err, stream) {
if (err) {
return reject(err);
}
stream.once('close', () => {
client.end();
});
csv({
trim: true,
delimiter: delimiter,
}).fromStream(stream, (err, result) => {
if (err) {
return reject(err);
}
return resolve(csvFormatterService.groupAndFormatOrders(result));
});
});
});
client.connect(ftpCredentials);
});
}
编辑: 我发现问题不是我的代码,而是文件的编码。该文件采用西方 (ISO 8859-1) 编码。
【问题讨论】:
标签: javascript node.js csv utf-8 ftp