Node.js支持的编码列表 [英] List of encodings that Node.js supports

查看:135
本文介绍了Node.js支持的编码列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要读取一个用ISO-8859-1(也称为latin1)编码的文件,如下所示:

I need to read a file which is encoded with ISO-8859-1 (also called latin1), something like this:

var file_contents = fs.readFileSync("test_data.html", "latin1");

但是,Node抱怨"latin1"或"ISO-8859-1"不是有效的编码(错误:未知编码").

However, Node complains about "latin1" or "ISO-8859-1" not being a valid encoding ("Error: Unknown encoding").

readFileSync接受哪些编码?

推荐答案

编码列表很短:

  • ascii
  • base64
  • 十六进制
  • ucs2/ucs-2/utf16le/utf-16le
  • utf8/utf-8
  • binary/latin1(ISO8859-1,仅在节点6.4.0+中为latin1)

如果您使用的是6.4.0之前的版本,或者不想使用非Unicode编码,则可以重新编码字符串:

If you are using an older version than 6.4.0, or don't want to deal with non-Unicode encodings, you can recode the string:

使用 iconv-lite 来重新编码文件:

var iconvlite = require('iconv-lite');
var fs = require('fs');

function readFileSync_encoding(filename, encoding) {
    var content = fs.readFileSync(filename);
    return iconvlite.decode(content, encoding);
}

或者,使用 iconv :

var Iconv = require('iconv').Iconv;
var fs = require('fs');

function readFileSync_encoding(filename, encoding) {
    var content = fs.readFileSync(filename);
    var iconv = new Iconv(encoding, 'UTF-8');
    var buffer = iconv.convert(content);
    return buffer.toString('utf8');
}

这篇关于Node.js支持的编码列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆