use*_*817 7 javascript encoding request shift-jis node.js
我正在尝试使用请求模块访问非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.
}
});
Run Code Online (Sandbox Code Playgroud)
即使在将编码选项设置为Shift_JIS之后,我也看到了乱码的日文文本.
您需要自己进行转换.下面的示例代码使用node-iconv.
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.
}
});
Run Code Online (Sandbox Code Playgroud)
encoding: null参数要求request不将Buffer(一个字节数组)转换为String.Iconv转换为另一种BufferUTF-8编码.Buffer很适合转换成String.(BTW,http://www.alc.co.jp已切换到UTF-8,所以我用另一个网站替换.)
| 归档时间: |
|
| 查看次数: |
540 次 |
| 最近记录: |