Node.js缓冲区字符串序列化

Node.js缓冲区字符串序列化,node.js,Node.js,我希望将缓冲区序列化为字符串而不产生任何开销(一个字符对应一个字节),并能够再次将其取消序列化为缓冲区 var b = new Buffer (4) ; var s = b.toString() ; var b2 = new Buffer (s) 仅对低于128的值生成相同的结果。我想使用0-255的整个范围 我知道我可以用String.fromCharCode()进行序列化,String.charCodeAt()进行反序列化,将其写入循环中,但我正在寻找一些本机模块实现(如果有的话)。您可

我希望将缓冲区序列化为字符串而不产生任何开销(一个字符对应一个字节),并能够再次将其取消序列化为缓冲区

var b = new Buffer (4) ;
var s = b.toString() ;
var b2 = new Buffer (s) 
仅对低于128的值生成相同的结果。我想使用0-255的整个范围


我知道我可以用String.fromCharCode()进行序列化,String.charCodeAt()进行反序列化,将其写入循环中,但我正在寻找一些本机模块实现(如果有的话)。

您可以使用
'latin1'
编码,但您通常应该尽量避免这种情况,因为将缓冲区转换为二进制字符串会有一些额外的计算开销

例如:

var b = Buffer.alloc(4);
var s = b.toString('latin1');
var b2 = Buffer.from(s, 'latin1');

有不推荐的
二进制编码。但我建议使用
base64
encoding@AlexeyTen这是正确的答案!答案现在似乎已经过时了。node.js打印
DeprecationWarning:Buffer()由于安全性和可用性问题而被弃用。请改用Buffer.alloc()、Buffer.allocUnsafe()或Buffer.from()方法。
新缓冲区(s'binary')
应替换为
缓冲区.from(s'binary')