它与iconv-lite一起用于节点0.10。但现在用
$ node -v
v4.1.1
I can't use iconv-lite with the latest node version。所以我试着回到Iconv:
var Iconv = require('iconv').Iconv;
...
request(url, {
uri: url,
method: 'GET'}, function (err, resp, body) {
var ic = new Iconv('ISO-8859-1', 'utf-8');
var buf = ic.convert(body);
body = buf.toString('utf-8');
但这导致�ber
应该是Über
。
我不知道如何解决这个问题。欢迎任何提示。
答案 0 :(得分:7)
尝试latin1
而不是iso-8859-1
。这是文档所说的用于从iso-8859-1
转换为utf-8
...
编辑:你还必须将请求编码设置为'二进制'它的工作原理。
编辑2:刚刚意识到,在二进制请求时你甚至不需要Iconv。
request(url, {... encoding: 'binary' ...},...
console.log(body)