Node 抓取非utf 8編碼頁面

2021-09-22 19:25:03 字數 962 閱讀 2217

}).on('error', function(err) );utf8與gbk進行轉換,可以把unicode作為中間編碼。

utf8編解unicode規則簡單,參見 utf8

gbk編解unicode無特定規則,一般可通過查表方式

gbk相容ascii碼,ascii字元用一位元組編碼,最高位為0,其它字元用兩位編碼,高位元組從0x81。編譯碼時通過此規律對單位元組和雙位元組字元加以區分。

由此可見,gbk是單位元組、雙位元組變長編碼。

理解了上面幾點後,編譯碼gbk檔案其實只需要乙個gbk–>unicode的碼表就夠了。

gbk編碼時,通過unicdoe–>gbk,生成相應的gbk位元組流;

gbk解碼時,通過gbk–>unicode,生成ucs2位元組流,再通過buffer.tostring(『ucs2』)即可轉換成string物件。

// npm install iconv-lite

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

var str = iconv.decode(buf, 'gbk'); //return unicode string from gbk encoded bytes

var buf = iconv.encode(str, 'gbk');//return gbk encoded bytes from unicode string

Nodejs抓取非utf8字元編碼的頁面

由於buffer.tostring encoding 中encoding只支援utf8編碼,所以需要附加模組才能處理此問題 安裝 on error function e 具體頁面編碼可以根據res.headers content type 來判斷。如果沒有res.headers content ty...

Nodejs抓取非utf8字元編碼的頁面

nodejs抓取非utf8字元編碼的頁面 mk2 由於buffer.tostring encoding 中encoding只支援utf8編碼,所以需要附加模組才能處理此問題 安裝 npm install iconv 具體頁面編碼可以根據res.headers content type 來判斷。如果沒...

介紹utf8編碼

utf8並不算是一種電腦編碼,而是一種儲存和傳送的格式,如前所述,每個unicode ucs字元都以 2或4個bytes來儲存,看看以下的比較 以 i am chinese 為例 用ansi儲存 12 bytes 用unicode ucs2儲存 24 bytes 2 bytes header 用uc...