我正在使用一个函数库,它在函数调用时返回缓冲区的toString.
确切的代码是
return Buffer.concat(stdOut).toString('utf-8');
Run Code Online (Sandbox Code Playgroud)
但我不想要它的字符串版本.
我只想要缓冲区
那么如何将字符串转换回缓冲区.
像是的东西
var bufStr = Buffer.concat(stdOut).toString('utf-8');
//convert bufStr back to only Buffer.concat(stdOut).
Run Code Online (Sandbox Code Playgroud)
这该怎么做?
我试过了
var buf = Buffer.from(bufStr, 'utf-8');
Run Code Online (Sandbox Code Playgroud)
但它抛出utf-8不是一个功能.当我做
var buf = Buffer.from(bufStr);
Run Code Online (Sandbox Code Playgroud)
它抛出TypeError:这不是一个类型化的数组.
谢谢
Joh*_*nck 102
你可以做:
var buf = Buffer.from(bufStr, 'utf8');
Run Code Online (Sandbox Code Playgroud)
但这有点傻,所以另一个建议是从被调用函数中复制最少量的代码,以允许自己访问原始缓冲区.根据该库的详细信息,这可能非常简单或相当困难.
注意:只需将John Zwinck的评论作为答案重新发布.
一个问题可能是您使用的是较旧版本的Node(目前,我无法升级,代码库受到攻击v4.3.1).这里简单的解决方案是,使用弃用的方式:
new Buffer(bufferStr)
Run Code Online (Sandbox Code Playgroud)
您可以Buffer.from()用来将字符串转换为缓冲区。可以在这里找到更多信息
var buf = Buffer.from('some string', 'encoding');
Run Code Online (Sandbox Code Playgroud)
例如
var buf = Buffer.from(bStr, 'utf-8');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73685 次 |
| 最近记录: |