Node.js を使用した非常に単純な JavaScript があります。スクリプトの目的は次のとおりです。
- リッスン ソケットを開く
- HTTP 関数 GET を使用して URL /test のハンドラーを追加する
- /test が要求されると、別の外部 Web サイトにある別の URL を取得する必要があります。この Web サイトは ISO-8859-1 でエンコードされています
- 外部 Web サイトから返されたデータは、JSON 構造にパッケージ化され、UTF-8 でエンコードされた要求側クライアントに返される必要があります。
これまでのところ、次のコードを作成しました。
var Buffer = require('buffer').Buffer;
var iconv = require('iconv-lite');
var urllib = require('url');
var restify = require('restify');
var server = restify.createServer();
server.use(restify.bodyParser());
server.get('/test', test);
server.listen(8080, function() {
console.log('%s listening at %s', server.name, server.url);
});
function test(req, res, next) {
console.log('TEST');
var httpClient = restify.createStringClient({ url: "http://dl.dropboxusercontent.com" });
httpClient.get("/u/815962/iso-8859-1.html", function(cerr, creq, cres, cdata) {
cdata = iconv.decode(cdata, 'iso-8859-1');
res.send(200, {"Data": cdata});
});
}
上記のコードで使用されるテスト ドキュメントをセットアップしました。テスト ドキュメントは ISO-8859-1 エンコーディングであり、その中に国別文字「ÅÄÖåäö」が含まれています。クライアントに返されたときに、UTF-8 のように読み取った場合、「ýýýýýý」を受け取ります。