Запросить модуль, как правильно получить ударные символы?
Я использую: Модуль: Запрос - Упрощенный метод HTTP-запроса, чтобы очистить веб-страницу с акцентированными символами á é ó ú ê ã
и т.д.
Я уже пробовал encoding: utf-8
без успеха. Я все еще получаю эти символы в результате.
request.get({
uri: url,
encoding: 'utf-8'
// ...
Есть ли какая-либо конфигурация для его исправления?
Я не знаю, является ли это проблемой, но я заполнил один для этого модуля. Пока нет ответов.:/
Ответы
Ответ 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.