拥有以下nodeJS Buffer()。toString(' utf8'):
Content-Type: audio/x-ms-wma
Content-Disposition: form-data; name=recordedAudio
\r\n\r\n0&�u�f�\u0011��\u0000�
我需要删除标题(Content-Type / Disposition)并获取原始音频数据。如果我只是用replace方法替换标头,我就无法将UTF-8音频正确地转换回缓冲区。
怎么做?
答案 0 :(得分:0)
最好不要在这里转换为字符串。要在缓冲区内对\r\n\r\n
进行缓冲区搜索,然后从该点开始切片。
例如:
var buf = ...;
var body = null;
for (var i=3; i<buf.length; ++i)
{
if (buf[i]=='\n' && buf[i-1]=='\r' && buf[i-2]=='\n' && buf[i-3]=='\r')
{
body = buf.slice(i);
break;
}
}
请记住,body
将引用与缓冲区相同的内存(例如,没有复制内存)。
答案 1 :(得分:0)
我使用buffer-split软件包开始工作:
var bsplit = require('buffer-split');
var rawData = bsplit(rawDataWithHeaders, new Buffer('\r\n\r\n'))[1];
rawData = bsplit(rawData, new Buffer('\r\n'))[0];