我试图使用请求模块访问一个非utf-8网站。此请求的响应被混淆。
var request = require('request');
request('http://www.alc.co.jp/', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Print the web page.
}
});即使在将编码选项设置为Shift_JIS之后,我也看到了混淆的日语文本。
发布于 2015-04-03 08:59:20
你需要自己做转换。下面的示例代码使用节点-图标。
var Iconv = require('iconv').Iconv;
var request = require('request');
request({
uri: 'http://www.jalan.net/',
encoding: null,
}, function (error, response, body) {
if (!error && response.statusCode == 200) {
body = new Iconv('shift_jis', 'utf-8').convert(body).toString();
console.log(body); // Print the web page.
}
});encoding: null参数要求request尚未将Buffer (字节数组)转换为String。Iconv,以便转换成另一个UTF-8编码的Buffer .Buffer很适合转换成一个字符串。(顺便说一句,http://www.alc.co.jp已经切换到UTF-8,所以我换了另一个站点。)
https://stackoverflow.com/questions/25623429
复制相似问题