nodejs を使用してWeb ページからデータをスクレイピングしようとしていますが、文字エンコーディングに問題があります。Web ページには、エンコーディングは次のように記載されています
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
。Chrome で閲覧すると、エンコーディングが windows-1250 に設定され、すべて問題なく表示されます。
ノードにはストリームの Windows-1250 エンコーディング/デコーディングがないため (そして utf8 は機能しませんでした)、異なるエンコーディング間で簡単に変換できる iconv-lite パッケージを見つけました。しかし、応答をファイルに保存 (またはコンソールに出力) した後も、間違った文字が表示されます。また、さまざまなエンコーディング、ネイティブ ノード バッファ エンコーディングを試し、ヘッダーを chrome ( ) に表示されるものと同じに設定しましたAccept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3
が、何も正しく動作していないようです。
ここでコード全体を見ることができますhttps://gist.github.com/4110999。
エンコーディングの仕組みに関する基本的なことが欠けていると思いますので、正しい文字でデータを取得する方法についての助けをいただければ幸いです。
編集:
パッケージの問題である場合に備えて、node-iconvパッケージも試しました。51 行目を次のように変更しました。
var decoder = new Iconv_native('WINDOWS-1250', 'UTF-8');
var decoded = decoder.convert(body).toString();
それでも同じ結果が得られます。