LoginSignup
6
8

More than 5 years have passed since last update.

HTTPレスポンスのbodyをUTF-8に変換する

Posted at

文字コードの判定と変換については こちら に書きました。

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実行時のencodingnullにしておくことです!
これがないとStringに変換されたbodyが帰ってきてしまうので文字コード判定ができなくなってしまいます。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8