Javascript Node.js中的自动检测字符编码

Javascript Node.js中的自动检测字符编码,javascript,node.js,utf-8,character-encoding,iconv,Javascript,Node.js,Utf 8,Character Encoding,Iconv,我正在寻找一种方法,以准确地检测字符编码的SRT字幕文件,为给定的(用户选择)语言。我目前正在使用jschardet库进行检测,不幸的是,它经常出错 var fs = require("fs"); var jschardet = require("jschardet"); var iconv = require('iconv-lite'); var loadFile = function(path, langCode){ var content = fs.readFileSync(pa

我正在寻找一种方法,以准确地检测字符编码的SRT字幕文件,为给定的(用户选择)语言。我目前正在使用jschardet库进行检测,不幸的是,它经常出错

var fs = require("fs");
var jschardet = require("jschardet");
var iconv = require('iconv-lite');

var loadFile = function(path, langCode){
    var content = fs.readFileSync(path);
    var encoding = jschardet.detect(content).encoding.toLowerCase();
    return iconv.decode(content, encoding);
};
(为了防止我的代码出现问题,添加了此选项)


还有比jschardet更准确的吗?也许某种东西也接受语言作为论据?我想这些信息可以大大提高准确性,但我不熟悉任何接受语言作为论据的库。

首先,库建议是离题的。但除此之外,如果你懂这门语言,只有几种可能性。根据你的名字,我猜是前南斯拉夫的,所以:Windows-1250,UTF-8,UTF-16;对于西里尔文,Windows-1251;还有YUSCII,CP852(和CP866),如果你落后了几十年。如果您还想在OSX之前检查MacOS上的苹果操作系统,请再看几张。但实际上,只有2比3。只需检查是否存在对应于十个特殊字母的字节序列,如果您发现它们的数量很大,您就知道您的编码。