Nodejs ExpressでBOM付きBufferをResponseで送りたい
Expressで作成しているAPI経由でcsvをダウンロードさせ、Excelで利用するために、BOM付きUTF-8でファイルダウンロードをさせたい。
res.contentType('text/csv');
res.attachment('response.csv');
res.write(
Buffer.concat([Buffer.from([0xef, 0xbb, 0xbf]), Buffer.from('csv,string,here')])
);
res.end();
結果として、BOMなしUTF-8のcsvファイルがダウンロードされる。
res.write
の中身を fs.write
でファイルに書き出したものがBOM付きUTF-8になっているのを確認しているので、HTTPレスポンス処理でBOMが外れているようです。
何か対策をご存知でしたら教えていただきたいです。