我正在试图找出node.js中可用的编码。
文档(http://nodejs.org/api/buffer.html#buffer_new_buffer_str_encoding)说:
Allocates a new buffer containing the given str. encoding defaults to 'utf8'.
但没有指定可用编码列表。也许我错过了它。
我正在编写脚本,它应该能够以各种编码输出。到目前为止,我只知道utf8正如doc所说:)
Thx,Jaro。
答案 0 :(得分:5)
在Buffers和JavaScript字符串对象之间进行转换需要一个 显式编码方法。以下是不同的字符串编码。
'ascii' - 仅适用于7位ASCII数据。这种编码方法非常快,如果设置,将剥离高位。
请注意,从字符串转换为缓冲区时,此编码会将空字符('\ 0'或'\ u0000')转换为0x20(字符代码) 一个空间)。如果要将空字符转换为0x00,则为 应该使用'utf8'。
'utf8' - 多字节编码的Unicode字符。许多网页和其他文档格式使用UTF-8。
'utf16le' - 2或4个字节,小端编码的Unicode字符。支持代理对(U + 10000到U + 10FFFF)。
'ucs2' - 'utf16le'的别名。
'base64' - Base64字符串编码。
'binary' - 一种通过仅使用每个字符的前8位将原始二进制数据编码为字符串的方法。这种编码方法是 不推荐使用,应该避免使用Buffer对象 可能。在将来的Node版本中将删除此编码。
'hex' - 将每个字节编码为两个十六进制字符。
答案 1 :(得分:0)
为了阐明最新的nodejs编码说明。我从nodejs文档粘贴。 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'-一种将缓冲区编码为一个字节编码的字符串的方式(由RFC 1345,第63页中的IANA定义为Latin-1补充块和C0 / C1控制代码)。 / p>
'binary'-'latin1'的别名。
'hex'-将每个字节编码为两个十六进制字符。