现代网站基本都是utf8编码的,但是一些老的网站还是基于gb2312的,比如 ip查地理位置 的网站编码是gb2312的。然而nodejs官方没提供gb2312的处理,所以就找第三方扩展来解决了。
我使用的是iconv-lite,直接npm安装就行了,windows和linux都可以直接用,因为它是完全用js写的,原理是通过字符的编码数字提取字符集表中的对应文字,见 encodings/tables
下的json文件。
npm install iconv-lite
一个简单的测试脚本提取ip地理位置:
var lib=require('./lib');
var iconv=require('./iconv-lite');
lib.get('http://www.ip138.com/ips138.asp?ip=121.42.200.35&action=2',{
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}).then(
function(a){
iconv.decode(a,'gb2312').replace(/class="ul1"[^>]*>|(?:\s*<li>[^:]+:\s*(\S+).+?<\/li>\s*)|<\/ul>/g,function(a,b){
b && console.log(b);
});
},
function(a){console.log('failed')}
);
相关文档
暂无
随便看看
畅言模块加载中