将包含ASCII二进制十六进制的字符串转换为Buffer

时间:2016-01-15 02:54:31

标签: javascript node.js string

我正在使用node.js。

我的字符串msg_str包含以下内容"0102ab00aabb00"。我想转换此字符串内容(表示二进制十六进制的ASCII)并将其存储到缓冲区中,以使缓冲区的内容看起来像<01 02 ab 00 aa bb 00 >

我写的一些初步代码没有按预期工作;

msg_str = "0102ab00aabb00";
buffer_binary = new Buffer(msg_str);
console.log(msg_str);   
console.log(buffer_binary); 

buffer_binary的控制台输出为30 31 30 32 61 62 30 30 61 61 62 62 30 30。正确的输出应为01 02 ab 00 aa bb 00

1 个答案:

答案 0 :(得分:7)

您需要告诉Buffer构造函数您的字符串是否为十六进制。幸运的是,这非常简单:)

msg_str = "0102ab00aabb00";
buffer_binary = new Buffer(msg_str, "hex"); // specify hex
console.log(msg_str); // logs 0102ab00aabb00
console.log(buffer_binary); // logs <Buffer 01 02 ab 00 aa bb 00>