我正在尝试将文本从 ANSI 编码文件转换为 node.js 中的 UTF8 编码文本。
我使用 Node 的核心 Fyle 系统从文件中读取信息。有什么方法可以“告诉”readFile 编码是 ANSI 吗?
fs = require('fs');
fs.readFile('..\\\\LogSSH\\' + fileName + '.log', 'utf8', function (err, data) {
if (err) {
console.log(err);
}
如果没有,我该如何转换该文本?
最佳答案
当然,ANSI其实并不是一种编码。但无论我们谈论的是什么确切的编码,我都看不到任何 Microsoft 代码页包含在记录在 Buffers and Character Encodings 的相对较短的列表中。 :
ascii
- 仅适用于 7 位 ASCII 数据。这种编码速度很快,如果设置,将去除高位。utf8
- 多字节编码的 Unicode 字符。许多网页和其他文档格式使用 UTF-8。utf16le
- 2 或 4 个字节,小端编码的 Unicode 字符。支持代理对(U+10000 到 U+10FFFF)。ucs2
- “utf16le”的别名。base64
- Base64 编码。从字符串创建缓冲区时,此编码还将正确接受 RFC4648 第 5 节中指定的“URL 和文件名安全字母表”。latin1
- 一种将 Buffer 编码为单字节编码字符串的方法(如 IANA 在 RFC1345 第 63 页中定义的那样,是 Latin-1 补充 block 和 C0/C1 控制代码)。binary
- “latin1”的别名。hex
- 将每个字节编码为两个十六进制字符。
如果您在西欧工作,您可能会想使用 latin1
作为 Windows-1252 的同义词,但一旦您打印出 €
,它就会呈现不正确的结果符号。
所以答案是否定的,需要安装第三方包,如iconv-lite .
关于javascript - 使用文件系统将 ANSI 文件文本转换为 node.js 中的 UTF8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41124917/