【发布时间】: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