【问题标题】:Iconv encoding conversion in NodeNode中的iconv编码转换
【发布时间】:2017-07-10 20:57:09
【问题描述】:

我在 Node.js 中使用 Iconv 将抓取的 HTML(通过带有 binary 编码的请求)从 SHIFT_JIS 转换为 UTF-8

request({url:url, encoding:'binary'}, function (error, res, html) {

   var iconv = new Iconv('SHIFT_JIS', 'UTF-8//TRANSLIT//IGNORE')

   var converted = iconv.convert(new Buffer(html,'binary')).toString('utf8')

})

我得到的转换看起来像: é«SnÌ\r\núêXj[J[ÍAVvÉÈ調ȫ³É\r\nå«ÈCpNgð^

虽然预转换看起来像:���[�J�b�g����X�j�[�J�[

我尝试在请求中使用encoding:null,但这也不起作用。

【问题讨论】:

  • 您是否通过检查res.headers 验证了内容编码?
  • @mscdex : res.headers 'content-type': 'text/html; charset=Shift_JIS'
  • 您使用的是iconv 还是iconv-lite?您是否尝试过使用其他模块来查看它是否有效/同样无效?

标签: node.js encoding character-encoding iconv


【解决方案1】:

编码实际上像上面发布的那样工作,这是在请求函数之外处理最终响应时出现的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2017-08-30
    • 2023-03-31
    相关资源
    最近更新 更多