nodejsで文字コードがsjisのcsvを取得して出力
svnサーバにあがっているcsvファイルを、httpsで取得してごにょごにょ処理をする必要があったのでメモ。
最初、httpsモジュール使って書いてたけど、文字化けがどうしても解決できなくて request モジュールに変えて enconding = null のオプションを使ったら解決した(http clientライブラリの中でレスポンスをそのまま返してもらえるように)。
sjisの文字をutf-8に変換するのは、iconvモジュール、csvのパースは csv-parseというモジュールを使った。
また、普通にhttpsプロトコルでrequestを送信すると、UNABLE_TO_VERIFY_LEAF_SIGNATUREエラーが帰ってくるので、一旦無視するようにしている。
下記がサンプルコード。
var Iconv = require('iconv').Iconv; var sjis = new Iconv('SJIS', 'UTF-8//TRANSLIT//IGNORE'); var csvParse = require('csv-parse'); var url = require('url'); var request = require('request'); // for avoid UNABLE_TO_VERIFY_LEAF_SIGNATURE error process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; var url = url.parse('https://svnhogehoge'); request({ url: url, encoding: null }, function (error, response, body) { if (!error && response.statusCode == 200) { body = sjis.convert(body).toString(); csvParse(body, function(err, csvOutput) { console.log(csvOutput); }); } });
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)
- 作者: 矢野啓介
- 出版社/メーカー: 技術評論社
- 発売日: 2010/02/18
- メディア: 単行本(ソフトカバー)
- 購入: 34人 クリック: 578回
- この商品を含むブログ (132件) を見る