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'));
})
相關文章
相關標籤/搜索