您的位置:首页 > Web前端 > Node.js

【Node.js】使用iconv-lite解决中文乱码 (GB2312)

2016-05-12 17:46 1051 查看
By Sodino 作为新手,碰到问题了就google了一下,网上已经有teary:window下nodejs爬取gb2312网页出现乱码的解决方案出来了。本文和上面的作法几乎相同,只是自己不想引用
bufferhelper
,自己用JavaScript原生的
Buffer
替代实现了。代码如下:
123456789101112131415161718192021
var http = require("http");var iconv = require('iconv-lite');var url = 'http://www.qq.com/';http.get(url, function(res){    var arrBuf = [];    var bufLength = 0;    res.on("data", function(chunk){        arrBuf.push(chunk);        bufLength += chunk.length;    })    .on("end", function(){        // arrBuf是个存byte数据块的数组,byte数据块可以转为字符串,数组可不行        // bufferhelper也就是替你计算了bufLength而已         var chunkAll = Buffer.concat(arrBuf, bufLength);           var strJson = iconv.decode(chunkAll,'gb2312'); // 汉字不乱码        console.log(strJson);    });});
GB2312编码的网页链接有:腾讯主页;GBK编码的网页链接有:搜狐主页。怎么查看网页是哪些编码呢?可以直接浏览器打开然后右键查看源代码,在
meta
标签中去查看
Content-Type
就好了.如下图.

About Sodino
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: