Подтвердить что ты не робот

Запросить модуль, как правильно получить ударные символы?

Я использую: Модуль: Запрос - Упрощенный метод HTTP-запроса, чтобы очистить веб-страницу с акцентированными символами á é ó ú ê ã и т.д.

Я уже пробовал encoding: utf-8 без успеха. Я все еще получаю эти символы в результате.

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

Есть ли какая-либо конфигурация для его исправления?

Я не знаю, является ли это проблемой, но я заполнил один для этого модуля. Пока нет ответов.:/

4b9b3361

Ответ 1

Поскольку двоичный файл устарел, кажется, что лучше использовать 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-запросе равным null encoding: null.

Ответ 2

Укажите кодировку как utf8 not utf-8. Ниже приведен список возможных кодировок для буфера из документации Node.js.

  • ascii - только для 7-битных данных ASCII. Этот метод кодирования очень быстрый, и он будет разделять высокий бит, если он установлен.
  • utf8 - символы Юникода. Многие веб-страницы и другие форматы документов используют UTF-8.
  • base64 - кодировка строки Base64.
  • 'binary - способ кодирования необработанных двоичных данных в строки с использованием только первых 8 бит каждого символа. Этот метод кодирования обесценивается и его следует избегать, если это возможно, в пользу объектов буфера. Эта кодировка будет удалена в будущих версиях Node.