文字コードの判定と変換については こちら に書きました。
var request = require('request');
var jschardet = require('jschardet');
var Iconv = require('iconv').Iconv;
request({ url : url , encoding : null }, function(err, response, body) {
if (err) {
callback(err);
return;
}
//文字コード変換
var detectResult = jschardet.detect(body);
var iconv = new Iconv(detectResult.encoding, 'UTF-8//TRANSLIT//IGNORE');
var convertedString = iconv.convert(body).toString();
callback(null, convertedString);
});
重要なのはrequest
実行時のencoding
をnull
にしておくことです!
これがないとString
に変換されたbodyが帰ってきてしまうので文字コード判定ができなくなってしまいます。