私はNode.jsを初めて使用しています。リクエストモデルを使用してウェブサイトをスクラップしようとしています。エンコードに問題があります。エンコーディングとしてBIG5を使用して、私は次のコードでUTF-8にそれを回すことを望んだ:ノードリクエストを使用してウェブサイトをスクラップしながらBig5をエンコードする
var Iconv = require('iconv').Iconv;
var fs = require('fs');
var big5_to_utf8 = new Iconv('big5', 'utf-8');
var buffer = big5_to_utf8.convert(fs.readFileSync('./test'));
console.log(buffer.toString());
私は、あなたの参考のためになるような問題は、廃棄の過程で何らかの間違っに起因する可能性があることを疑います解消のコード:
var fs = require('fs');
var request = require('request');
var j = request.jar()
var cookie = request.cookie('ASPSESSIONIDCSDCTTSR=KDMMMIMDCCIHJIJFDKGEDFOH')
j.add(cookie)
request({
url: 'http://amis.afa.gov.tw/v-asp/v101r.asp',
method: "POST",
"Content-type": "application/x-www-form-urlencoded;",
jar:true,
encoding: 'utf-8',
form: {
mhidden1:false,
myy:101,
mmm:9,
mdd:25,
mpno:"FC",
mpnoname:"%ADJ%A5%CA++++",
B1:"%B6%7D%A9l%ACd%B8%DF",
}
}, function (error, response, body) {
console.log(body);
fs.writeFile("test", body);
});
本当にありがとうございます。
EDIT:これは返すべきものである
<p align="center"><font color="#800080">�Шϥ��s�����u���C��</font><em><font
size="4" color="#000080">[�W�@��]</font></em><font color="#800080">�^���e�@���J�����e���~���d��</font></p>
:
エラーに、より具体的には、次はどのようなコードに戻ります
<p align="center"><font color="#800080">請使用瀏覽器工具列中</font><em><font size="4" color="#000080">[上一頁]</font></em><font color="#800080">回到前一輸入條件畫面繼續查詢</font></p>
I iconvの代わりにiconv-liteを使用して、関数呼び出しを次のものに置き換えようとしました:
function (error, response, body) {
var bufferhelper = new BufferHelper();
bufferhelper.concat(body);
console.log(iconv.decode(bufferhelper.toBuffer(), 'Big5'));
});
のみ取得するには:
<p align="center"><font color="#800080">�濆詉胬胬譃胬舚胬</font><em><font
size="4" color="#000080">[抝胬]</font></em><font color="#800080">䒷胬蓚胬鸜胬胬蓚胬趦胬胬</font</p>
実際にデータがbig5でエンコードされていることを確認しましたか? – SheetJS
Nirkに:もう一度チェックしました。はい、ページはbig5でエンコードされています。 – muyueh
「私は問題を抱えています」とは、あなたが直面している正確な問題を記述する。あなたのコードの結果は何ですか?何かエラーが出ますか? – user568109