Strip UTF-8 byte order mark (BOM) from a string/buffer/stream
From Wikipedia:
The Unicode Standard permits the BOM in UTF-8, but does not require nor recommend its use. Byte order has no meaning in UTF-8.
$ npm install --save strip-bom
var fs = require('fs');
var stripBom = require('strip-bom');
stripBom('\ufeffUnicorn');
//=> Unicorn
stripBom(fs.readFileSync('unicorn.txt'));
//=> Unicorn
Or as a Transform stream:
var fs = require('fs');
var stripBom = require('strip-bom');
fs.createReadStream('unicorn.txt')
.pipe(stripBom.stream())
.pipe(fs.createWriteStream('unicorn.txt'));
$ npm install --global strip-bom
$ strip-bom --help
Usage
strip-bom <file> > <new-file>
cat <file> | strip-bom > <new-file>
Example
strip-bom unicorn.txt > unicorn-without-bom.txt
MIT © Sindre Sorhus