使用iconv 从gb2312转utf-8经常出错? 400 报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

使用iconv 从gb2312转utf-8经常出错? 400 报错

爱吃鱼的程序员 2020-06-02 16:59:04 180

使用iconv 从gb2312转utf-8经常出错? 400 报错

/** * 采集39问答网 */

var n = require('needle') var $ = require('jquery') var iconv = require('iconv').Iconv; n.get('http://ask.39.net/browse/313-2-1.html',{encoding:'gb2312'},function(error,response,body){ //console.log(response.statusCode) var buf = new Buffer(body,'binary'); var content = new iconv('gb2312','UTF8').convert(buf).toString() //采集到的链接 var $(content).find('.bt').each(function(index,value){ href[$(value).attr('href')] = $(value).attr('href') }) console.log(href) })

经常出现下面的错误

D:\node.js\node_modules\iconv\lib\iconv.js:85
          throw errnoException('EILSEQ', 'Illegal character sequence.');
                ^
Error: Illegal character sequence.
    at errnoException (D:\node.js\node_modules\iconv\lib\iconv.js:137:13)
    at convert (D:\node.js\node_modules\iconv\lib\iconv.js:85:17)
    at Iconv.convert (D:\node.js\node_modules\iconv\lib\iconv.js:108:12)
    at D:\node.js\cj39.js:11:46
    at handle_output (D:\node.js\node_modules\needle\lib\needle.js:227:16)
    at Object.Needle.response_end (D:\node.js\node_modules\needle\lib\needle.js:242:7)
    at IncomingMessage.<anonymous> (D:\node.js\node_modules\needle\lib\needle.js:187:16)
    at IncomingMessage.EventEmitter.emit (events.js:117:20)
    at _stream_readable.js:883:14
    at process._tickCallback (node.js:415:13)

不知道有没有其他的方式进行编码转换

使用gb2312 utf-8报错 使用gb2312utf-8 gcc使用报错 utf使用
分享到
取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-02 16:59:18

    建议你用request 这个模块抓取,jsdom解析。######

    引用来自“iblue”的答案

    建议你用request 这个模块抓取,jsdom解析。
    数据已经抓过来了。就是编码的问题
    ######encoding:'gb2312' > encoding:null 试试######

    var iconv = require('iconv-lite');

    var content = iconv.decode(buf,'gb2312');

    用iconv-lite试试。

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

相似问题
最新问题
推荐课程