我正在使用一个函数调用函数库来返回缓冲区的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:这不是一个类型化的数组。
由于
答案 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"));