Node.js对响应的奇怪编码
Node.js weird encoding on response?
我使用第三方api来获取一些图像的响应给我这个。我想这不是base64吧?
"����'u0000'u0010JFIF'u0000'u0001'u0001'u0000'u0000'u0001'u0000'u0001'u0000'u0000��'u0000C'u0000'b'u0006'u0006'u0007'u0006'u0005'b'u0007'u0007'u0007't't'b'n'f'u0014'r'f'u000b'u000b'f'u0019'u0012'u0013'u000f'u0014'u001d'u001a'u001f'u001e'u001d'u001a'u001c'u001c $.' '",#'u001c'u001c(7),01444'u001f'9=82<.342��'u0000C'u0001't't't'f'u000b'f'u0018'r'r'u00182!'u001c!22222222222222222222222222222222222222222222222222��'u0000'u0011'b'u0002!'u0002&'u0003'u0001'"'u0000'u0002'u0011'u0001'u0003'u0011'u0001��'u0000'u001f'u0000'u0000'u0001'u0005'u0001'u0001'u0001'u0001'u0001'u0001'u0000'u0000'u0000'u0000'u0000'u0000'u0000'u0000'u0001'u0002'u0003'u0004'u0005'u0006'u0007'b't'n'u000b��'u0000"
发出请求的代码。
unirest.get("MYAPIROUTE")
.header("X-Mashape-Key", "MYKEY")
.end(function (result) {
console.log(result.status, result.headers, result.body);
res.send(result.body);
});
我的问题是,与node.js我如何解码这个,所以我可以发送客户端适当的图像?
分辨率:
unirest.get("MYAPIROUTE")
.header("X-Mashape-Key", "MYKEY")
.end(function (result) {
console.log(result.status, result.headers, result.body);
if(result.status==200) {
var buffer = (new Buffer(result.body.toString()));
res.end(buffer.toString("base64")); // output content as response body
require('fs').writeFileSync('/some/public/folder/md5HashOfRequestedUrl.jpg', buffer); // also write it to file
delete buffer;
return;
}
res.writeHead(result.status, result.headers);
res.write(result.body);
res.end();
});
参考:http://nodejs.org/api/buffer.html
假设它是一个图像。那么为什么不尝试设置
呢?<img src="http://your-site.com/some/public/folder/md5HashOfRequestedUrl.jpg">
第三方API应该有预期响应类型的数据类型,这样我们就可以弄清楚需要解码的格式是什么…
我的猜测是,它返回一个UTF-8字符串,尝试这个模块的解码函数解码字符串:https://www.npmjs.com/package/utf8
相关文章:
- 如何将getJson的响应保存在全局变量中
- 如何使用nodejs/javascript实现地理编码响应
- 获取 JSON 编码响应中的数组键
- 在JavaScript节点环境中将Gzip内容编码响应转换为JSON数据
- 如何在 node.js 中将 HTTP 响应正文编码为 UTF-8
- PHP base64 编码的响应在 Javascript 中无法正确解码
- 我们能否让谷歌地图Javascript地理编码API v3在响应中返回自定义标识符
- 为什么 AngularJS 指令适用于硬编码值,但使用 http 请求/响应失败
- Node.js没有对HTTP响应标头使用ISO-8859-1编码
- 需要对JSON响应进行编码/解码,以便将其传递到另一个网页
- 有没有一种方法可以在调用诺基亚反向地理编码api时将响应和查询关联起来
- Node.js/Express-如何设置响应字符编码
- Ajax请求没有使用编码器的响应
- 在HTML中使用返回的JSON编码AJAX PHP响应<作为值
- node.js:如何以自定义格式获取http和解码/编码响应
- 如何强制 Node 的请求模块不对响应进行编码
- Javascript没有响应编码器
- 从谷歌地图API输出谷歌地理编码响应
- 如何编码整个html响应数据,然后通过JS解码它
- Node.js对响应的奇怪编码