什么编码可用于Node.js?

5

我正在尝试弄清楚node.js中有哪些编码可用。

文档(http://nodejs.org/api/buffer.html#buffer_new_buffer_str_encoding)说:

分配一个包含给定str的新缓冲区。默认编码为'utf8'。

但是没有指定可用编码的列表。也许我错过了。

我正在编写一个脚本,应该能够输出各种编码。到目前为止,我只知道utf8,因为文档上是这样写的 :)

谢谢,Jaro。


2
如果您需要比 Node 原生支持的编码更多的编码,请查看 iconv-lite - robertklep
不得不承认,我也是在完全相同的情况下来到这里的。Node.js文档结构仍然很差,而且没有包含任何有关读写操作所支持的编码的链接/参考资料是不好的。 - adelphus
2个回答

6

Node.js中可用的编码方式:

  • ascii:仅适用于7位ASCII数据。此编码速度快,并且会去除高位(如果已设置)。
  • utf8:多字节编码的Unicode字符。许多网页和其他文档格式使用UTF-8。
  • utf16le:2或4个字节,小端编码的Unicode字符。支持代理对(U+10000到U+10FFFF)。
  • ucs2:是utf16le的别名。
  • base64:Base64编码。从字符串创建缓冲区时,此编码也将正确接受RFC 4648第5节中指定的“URL和文件名安全字母表”。
  • latin1:一种将缓冲区编码为一个字节编码字符串的方式(由IANA在RFC 1345第63页中定义为Latin-1补充块和C0 / C1控制代码)。
  • binary:是'latin1'的别名。
  • hex:将每个字节编码为两个十六进制字符。

来源:Node 12缓冲区文档


1
默认情况下,缓冲区不支持 iso-8859-1。我在网上搜索并找到了另一个帖子 https://dev59.com/g2Uq5IYBdhLWcg3wXvWa。该解决方案是基于node-iconv npm的。我会试一试。谢谢。 - Jaro

0
为了澄清最新的Node.js编码说明,我从Node.js文档中复制过来。v4+不会弃用二进制。

当前由Node.js支持的字符编码包括:

'ascii' - 仅适用于7位ASCII数据。该编码速度快,如果设置则会剥离高位。

'utf8' - 多字节编码的Unicode字符。许多网页和其他文档格式使用UTF-8。

'utf16le' - 2或4个字节,小端编码的Unicode字符。支持代理对(U+10000到U+10FFFF)。

'ucs2' - 'utf16le'的别名。

'base64' - Base64编码。当从字符串创建缓冲区时,此编码还将正确接受RFC 4648第5节中指定的“URL和文件名安全字母表”。

'latin1' - 将缓冲区编码为一个字节编码的字符串的一种方式(由IANA在RFC 1345第63页定义为Latin-1补充块和C0/C1控制代码)。

'binary' - 'latin1'的别名。

'hex' - 将每个字节编码为两个十六进制字符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接