diff --git a/lib/parser.js b/lib/parser.js index acd48f8..91a9de9 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -2,6 +2,7 @@ var _ = require('lodash'); var fs = require('fs'); var path = require('path'); var util = require('util'); +var iconv = require('iconv-lite'); var findFiles = require('./utils/find_files'); @@ -82,7 +83,7 @@ Parser.prototype.parseFiles = function(options, parsedFiles, parsedFilenames) { // Parser for (var i = 0; i < files.length; i += 1) { var filename = options.src + files[i]; - var parsedFile = self.parseFile(filename); + var parsedFile = self.parseFile(filename, options.encoding); if (parsedFile) { app.log.verbose('parse file: ' + filename); parsedFiles.push(parsedFile); @@ -94,14 +95,15 @@ Parser.prototype.parseFiles = function(options, parsedFiles, parsedFilenames) { /** * Execute Fileparsing */ -Parser.prototype.parseFile = function(filename) { +Parser.prototype.parseFile = function(filename, encoding) { var self = this; app.log.debug('inspect file: ' + filename); self.filename = filename; self.extension = path.extname(filename).toLowerCase(); - self.src = fs.readFileSync(filename, 'utf8').toString(); + var fileContent = fs.readFileSync(filename,{encoding:"binary"}); + self.src = iconv.decode(fileContent, encoding); app.log.debug('size: ' + self.src.length); // unify line-breaks