将包含二进制hexASCII的string转换为Buffer

我正在使用node.js

我有这个stringmsg_str与以下内容"0102ab00aabb00" 。 我想转换这个string内容(ASCII代表二进制hex),并将其存储到一个缓冲区,使得缓冲区的内容看起来像<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

你需要告诉Buffer构造函数你的string是hex的。 幸运的是,这很容易:)

 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>