Node.js支持的编码列表 [英] List of encodings that Node.js supports
本文介绍了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屋!
查看全文