当前位置: 首页 > 面试题库 >

Node.js支持的编码列表

崔博延
2023-03-14
问题内容

我需要读取一个用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');
}


 类似资料:
  • SRS哪些协议支持hevc编码 支持hevc编码的协议: rtmp httpflv hls srt: 具体见srt codec wiki FLV视频头信息 因为rtmp在2012年后,协议没有更新,对hevc编码格式的支持在rtmp协议官方文档中没有明确定义。 国内cdn厂商通过修改<video>中CodecID的定义,将flv中的hevc codecid定义为12。 Field Type Com

  • 根据,以下是它支持的密码: 我正在端口443上运行一个简单的node.js服务器。运行时,以下是密码: 我不明白的是,为什么实际支持的密码列表要短那么多? 更令人困惑的是,当我在node中获得支持的密码列表时,我会发现一个很长的列表: ['AES128-GCM-SHA256','AES128-SHA','AES128-SHA256','AES256-GCM-SHA384','AES256-SHA'

  • 关于字符编码的知识 关于字符编码方面的知识,如果不是很了解的话,建议先去看看[7] 以及相关的中文字符编码:[8] 在对什么字符编码,以及常见的一些字符编码,比如ISO 8859,UTF-8,GB2312,GBK等,有个最基本的了解之后,我们再来看看Notepad++在字符编码方面,有哪些功能: 3.3.1. 用Notepad++查看当前文件编码 对于想要知道当前文件所用的字符编码类型,可以如下操

  • 问题内容: 我正在尝试安装node.js。我遵循了本教程,并且陷入了中间。 当我在cygwin终端中写时,它说“不支持cygwin”。请帮帮我,谢谢。 问题答案: 以我的经验,Node在cygwin中运行良好,通常在Node中有EINVAL错误的似乎是MINTTY,这是cygwin的终端仿真“皮肤”。我仍然不确定为什么这些EINVAL错误会100%发生,但是以下是我用来使节点正常工作的步骤和技巧。

  • 请查看Servlet类中的注释。如果将更改为,则无法访问应用程序。 为什么会出现这个问题?