Почему ИНОГДА приходят «кракозябры» в ответ на http.get к habrahabr.ru?
На гзип похоже
Да, действительно дело оказалось в сжатии. Вот работающий пример:var http = require('http');
var zlib = require('zlib');
var href = 'http://habrahabr.ru/post/247439/';

http.get(href, function(res) {
	var chunks = [];
	res.on('data', function (data) {
		chunks.push(data);
	});
	res.on('end', function() {		
   		var body = Buffer.concat(chunks);
		var encoding = res.headers['content-encoding'];		
		if(encoding && (encoding == 'gzip'|| encoding == 'deflate')) {
			zlib.unzip(body, function (err, buf) {
				if (!err) {
					console.log(buf.toString().substring(0, 1000));
				}
			});
        } else {
			console.log(body.toString().substring(0, 1000));
		}
    }).on('error', function(err) {
        console.log("Error getting content: " + err.message);
    });
});