chardet/index.js

44 lines
986 B
JavaScript
Raw Normal View History

2013-03-04 19:47:01 +00:00
var UTF_8 = require('./encoding/utf8');
var unicode = require('./encoding/unicode');
var mbcs = require('./encoding/mbcs');
var iso2022 = require('./encoding/iso2022');
var recognisers = [
new UTF_8,
new unicode.UTF_16BE,
new unicode.UTF_16LE,
new unicode.UTF_32BE,
new unicode.UTF_32LE,
new mbcs.sjis,
new mbcs.big5,
new mbcs.euc_jp,
new mbcs.euc_kr,
new mbcs.gb_18030,
new iso2022.ISO_2022_JP,
new iso2022.ISO_2022_KR,
new iso2022.ISO_2022_CN
];
module.exports.detect = function(buffer) {
var det = {
fRawInput: buffer,
fRawLength: buffer.length,
fInputBytes: buffer,
fInputLen: buffer.length
};
var matches = [];
for (var i = recognisers.length - 1; i >= 0; i--) {
var recogniser = recognisers[i];
matches.push(rec.match(det));
};
matches.sort(function(a, b) {
return a.confidence - b.confidence;
});
return matches.pop().name;
};