NodeJS: 处理request网页乱码问题

碰到乱码的问题真是头痛。方法试来试去。最终解决方案。

注意事项:request获取得到buffer,我原来是直接tostring,然后再转编码,怎么转都是乱码。正确方法应该是在buffer就直接转编码然后再tostring。

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);
    }
  }
};

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值