nodejs 如何读取文件编码信息
发布于 2年前 作者 chihuohuo 1988 次浏览

RT,

iconv-lite好像不会自动识别文件编码。

例如: A.md //utf-8 B.md //ANSI

用iconv的encode(data, ‘utf-8’)读取A文件正常,B文件就会乱码

有没有这样的模块能识别文件编码信息呢

6 回复

自动识别编码很难搞的。

有挺多语言的自带库或者三方库都有这样子的功能啊。

不能保证识别的绝对准确。文件编码这个问题太复杂了,有各种各样的情况,涉及文件头、文件具体内容等等。 很简单的例子,文件内容可能分多次写入,每次写的时候用了不同编码; 又比如,有些字符(比如汉语拼音),你用文本文件打开看不出乱码,只不过是没显示出来,使用文本编辑器检测的编码是utf8,但实际上这些字符需要big5才能显示.

我只能苦逼的这样干了 …

var str = iconv.decode(data, 'utf-8');

// 编码不对试着用GBK编码
if(str.indexOf('�') != -1){
    str = iconv.decode(data, 'gbk');
}

淫才,淫才啊

回到顶部