csv Google Cloud Storage NodeJS Library,ReadStream添加了无效的第一个字符

a64a0gku  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(83)

如果我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'
你知道是什么造就了这个隐形人吗?如何摆脱它?

pengsaosao

pengsaosao1#

这让我陷入了一个兔子洞。问题实际上是Excel将BOM(https://en.wikipedia.org/wiki/Byte_order_mark)添加到CSV的开头。使用PapaParse for NodeJS,我们修改了头部的trim()空白,这会照顾到BOM。
所以问题出在我们的档案上,而不是昏迷指数。如果您使用GCS file.download(),它们显然会剥离BOM,但在使用readStream时则不会

相关问题