NodeJS:requestのウェブページの文字化け問題を処理します.

1235 ワード

文字化けの問題にあって、頭が痛いです.方法を試してみます.最終解決策
注意事項:requestはbufferを獲得しました.元々は直接totringで、それからコードを変えます.どうやって回転しても文字化けです.正しい方法はブザーで直接コードを変えてからトライするべきです.
const Base = require('./base.js');
var request = require('sync-request');//     
var iconv = require('iconv-lite');  
module.exports = class extends Base {
  indexAction() {
    this.body = '    ,    !Please pay more attention to public welfare projects';
  }
  qqinfoAction() {
    //  qq     
    if(this.isGet) { //     GET   
      const qq = this.get('qq');
      var url='https://r.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins='+qq;
      var html = request('GET', url).getBody();
      console.log(html);
      var imgurl,name;
//       ,
//html=html.toString();
//html=iconv.decode(html,'gb2312');
      html=iconv.decode(html, 'gb2312').toString();
      console.log(html);
      var arr=html.split('"');
      if (arr.length<4){
       return this.fail() 
      }
      var data={};
      data["imgurl"]='https://q.qlogo.cn/headimg_dl?dst_uin='+qq+'&spec=100';
      data["name"]=arr[5]; 
      return this.success(data);
    }
  }
};