碰到亂碼的問題真是頭痛。方法試來試去。最終解決方案。
注意事項: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);
}
}
};