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