使用Node.Js检索JSON时出现奇怪的字符

时间:2015-08-22 11:32:41

标签: javascript json node.js encoding

我试图从API获取json。 响应有一些非英语字符,所以我用utf-8编码响应。

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    res.header("Content-Type", "application/json; charset=utf-8");
 next();
});

我得到了一些奇怪的角色。

这是我检索数据的方式:

var reqObj = http.get( url, function(res) {
    var oj= '';

    res.on('data', function(chunk) {
        oj += chunk;
      });

res.on('end', function() {
     console.log(oj);    // output =  '??{"title":  " ????? ????? ????? "}'
     JSON.parse(oj);     // parsing failed - unexpected token ?

 });

如果我在utf-8中解码响应,为什么我会得到奇怪的字符json和json本身? 这导致解析为json失败。 解决这个问题的任何想法?

修改 我设置res.setEncoding('binary'); 得到这个输出: enter image description here

0 个答案:

没有答案