模块请求如何正确检索重音字符?

我正在使用: 模块:请求 – 简化的HTTP请求方法来刮擦重音字符的网页á é ó ú ê ã

我已经试过encoding: utf-8没有成功。 结果中我仍然得到这个字符。

 request.get({ uri: url, encoding: 'utf-8' // ... 

有没有任何configuration来解决它?

我不知道这是不是一个问题,但是我为这个模块填了一个 。 还没有答案。 :/

由于二进制被弃用,使用iconv并正确处理解码似乎是一个更好的主意:

 var request = require("request"), iconv = require('iconv-lite'); var requestOptions = { encoding: null, method: "GET", uri: "http://something.com"}; request(requestOptions, function(error, response, body) { var utf8String = iconv.decode(new Buffer(body), "ISO-8859-1"); console.log(utf8String); }); 

重要的部分是将HTTP请求上的编码设置为空encoding: null

指定编码为utf8而不是utf-8 。 以下是Node.js文档中缓冲区的可能编码列表。

  • ascii – 仅用于7位ASCII数据。 这种编码方法是非常快的,如果设置,将剥离高位。
  • utf8 – Unicode字符。 许多网页和其他文档格式使用UTF-8。
  • base64 – Base64string编码。
  • 'binary – 通过仅使用每个字符的前8位将原始二进制数据编码为string的一种方法。 此编码方法已折旧,应尽可能避免使用Buffer对象。 此编码将在未来版本的Node中删除。