如果我file.download在整个文件上使用www.example.com(),则没有问题。所以我知道不是文件本身。但是如果我流式传输文件,我会得到一个无效的第一个字符。
async readFileStream(bucket, filename) {
const myBucket = this.storage.bucket(bucket);
const file = myBucket.file(filename);
const stream = await file.createReadStream();
stream.on('data', async (data) => {
console.log('data');
debugger;
});
return stream;
}
数据
data.toString()
'start_date,email,sales
那么data.toString()[0]
是''
而不是's'
你知道是什么造就了这个隐形人吗?如何摆脱它?
1条答案
按热度按时间pengsaosao1#
这让我陷入了一个兔子洞。问题实际上是Excel将BOM(https://en.wikipedia.org/wiki/Byte_order_mark)添加到CSV的开头。使用PapaParse for NodeJS,我们修改了头部的trim()空白,这会照顾到BOM。
所以问题出在我们的档案上,而不是昏迷指数。如果您使用GCS file.download(),它们显然会剥离BOM,但在使用readStream时则不会