我有一个非常简单的使用 Node.js 的 JavaScript。该脚本的目的是:
- 打开一个监听套接字
- 使用 HTTP 函数 GET 为 URL /test 添加处理程序
- 当请求 /test 时,应获取位于另一个外部网站上的另一个 URL。本网站采用 ISO-8859-1 编码
- 从外部网站返回的数据应打包成 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,我会收到“ýýýýýý”