Node.js支持的编码列表

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

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

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

readFileSync接受什么编码?

回答:

该编码的列表节点支持本身是相当短的:

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

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

使用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支持的编码列表 的全部内容, 来源链接: utcz.com/qa/405708.html

回到顶部