将字符串转换为缓冲节点

时间:2016-05-25 12:15:24

标签: node.js

我正在使用一个函数调用函数库来返回缓冲区的toString。

确切的代码是

return Buffer.concat(stdOut).toString('utf-8');

但我不想要它的字符串版本。

我只想要缓冲区

所以如何将字符串转换回缓冲区。

像是

之类的东西
var bufStr = Buffer.concat(stdOut).toString('utf-8');
//convert bufStr back to only Buffer.concat(stdOut).

怎么做?

我试过

var buf = Buffer.from(bufStr, 'utf-8');

但它抛出utf-8不是一个功能。 当我做的时候

var buf = Buffer.from(bufStr);

抛出TypeError:这不是一个类型化的数组。

由于

4 个答案:

答案 0 :(得分:77)

你可以这样做:

var buf = Buffer.from(bufStr, 'utf8');

但这有点傻,所以另一个建议是将最少量的代码复制出被调用函数,以允许自己访问原始缓冲区。根据该库的详细信息,这可能非常简单或相当困难。

答案 1 :(得分:7)

注意:只需将John Zwinck的评论重新发布作为答案。

一个问题可能是您使用的是旧版本的Node(暂时,我无法升级,代码库被v4.3.1击中)。这里的简单解决方案是使用弃用的方式:

new Buffer(bufferStr)

答案 2 :(得分:4)

您可以使用capabilities: { orientation: 'landscape', platformName: 'Android', platformVersion: '5.0.2', ... }, 将字符串转换为缓冲区。有关这方面的更多信息,请访问here

Buffer.from()

例如

var buf = Buffer.from('some string', 'encoding');

答案 3 :(得分:0)

这对我有用,您可以像这样更改代码

var responseData=x.toString();

var responseData=x.toString("binary");

最后

response.write(new Buffer(toTransmit, "binary"));