nodejs 使用iconv-lite转码GBK

nodejs 使用iconv-lite转码GBK

为何须要转码?

nodejs默认支持的几种编码格式为 utf8,base64,binary, 若是咱们要请求或者处理GBK或者Gb2312的页面/文件咱们就须要转码.node

汉字在计算机中的存储

不管GB2312仍是utf8,在计算机中存储的时候都是用二进制编码进行存储,那为何计算机又能正确的显示汉子呢?这就是这几种编码格式的做用,他们规定了如何将二进制翻译成汉字或者汉字翻译成二进制的规则ui

iconv-lite decode(buffers, "编码格式(如GBK)")

将GBK编码的二进制转换为通用的二进制编码

iconv-lite encode(字符, ‘编码格式(如GBK)’)

将GBK编码的字符串转换为通用的二进制翻译

转为UTF8

获取3或4的通用二进制代码 toString("utf8")就能拿到utf8编码的字符code

//一下代码仅为参考,不必定能运行
//携程网的编码为GB2312

var request = require("request");
var iconv = require('iconv-lite');

//这里的encoding 要传null,这样返回的是二进制代码
request.get("http://www.ctrip.com", {encoding: null}, function(err, resp, bufs) {
	if (err) throw err;
	//进行解码
	bufs = iconv.decode(bufs, 'gb2312');
	//转为utf8
	console.info(bufs.toString('utf8'));
})
相关文章
相关标签/搜索