diff --git a/ragel/lexer.js.rl.erb b/ragel/lexer.js.rl.erb index c2bc7740..249f90b3 100644 --- a/ragel/lexer.js.rl.erb +++ b/ragel/lexer.js.rl.erb @@ -145,9 +145,15 @@ var Lexer = function(listener) { Lexer.prototype.scan = function(data) { var ending = "\n%_FEATURE_END_%"; if(typeof data == 'string') { + // Check for Byte Order Mark + data = data.replace(/^\uFEFF/, ''); data = this.stringToBytes(data + ending); } else if(typeof Buffer != 'undefined' && Buffer.isBuffer(data)) { // Node.js + // Check for Byte Order Mark + if (data[0] === 0xEF && data[1] === 0xBE && data[2] === 0xBB) { + data = data.slice(3); + } var buf = new Buffer(data.length + ending.length); data.copy(buf, 0, 0); new Buffer(ending).copy(buf, data.length, 0);