Module request how to properly retrieve accented characters? � � �
Solution 1:
Since binary is deprecated it seems like a better idea to use iconv and correctly handle the decoding:
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);
});
The important part is to set the encoding on the HTTP request to be null encoding: null
.
Solution 2:
Specify the encoding as utf8
not utf-8
. Here are a list of possible encodings for a buffer from the Node.js documentation.
-
ascii
- for 7 bit ASCII data only. This encoding method is very fast, and will strip the high bit if set. -
utf8
- Unicode characters. Many web pages and other document formats use UTF-8. -
base64
- Base64 string encoding. -
'binary
- A way of encoding raw binary data into strings by using only the first 8 bits of each character. This encoding method is depreciated and should be avoided in favor of Buffer objects where possible. This encoding will be removed in future versions of Node.