节点请求ISO-8859-1自节点4起不起作用

Mem*_*eak 2 encoding iso-8859-1 request node.js

我得到一个返回latin1的网页 浏览器截图(来自网站的回复)

它与iconv-lite一起用于节点0.10.但现在有了

$ node -v
v4.1.1
Run Code Online (Sandbox Code Playgroud)

我不能将iconv-lite与最新的节点版本一起使用.所以我试着回到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');
Run Code Online (Sandbox Code Playgroud)

但这导致�ber它应该在哪里Über.

我不知道如何解决这个问题.欢迎任何提示.

Hol*_*ill 8

尝试latin1而不是iso-8859-1.这就是文档所说的用于转换iso-8859-1utf-8...的内容

编辑:你还必须将请求编码设置为'二进制'才能生效.

编辑2:刚刚意识到,在二进制请求时你甚至不需要Iconv.

request(url, {... encoding: 'binary' ...},...
console.log(body)
Run Code Online (Sandbox Code Playgroud)