2016-03-23 12 views
0

Bir sayfayı ayrıştırmaya çalışırken tuhaf karakterler alıyorum. Bazen benim yok,Node.js cheerio garip karakterler (kiril harfleri)

<span>Ст��атегии</span> 
<span>Стратег��и</span> 
<span>Стра��егии</span> 
<span>Стратегии</span> 
<span>Стратегии</span> 
... 

tuhaf şey aynı url, bazen ben bu garip karakterler elde ediyoruz:

var getPageContent = function getPageContent(url, callback) { 
    https.get(url, function (res) { 
     var data = ""; 
     res.on('data', function (chunk) { 
      data += chunk; 
     }); 
     res.on("end", function() { 
      callback(data)); 
     }); 
    }).on("error", function() { 
     callback(null); 
    }); 
}; 

getPageContent(url, function (response) { 
    var $ = cheerio.load(response, { decodeEntities: false }); 
    $("div.details-info").each(function() { 
     console.log($(this).html()); 
    }); 
}); 

Benim sonucudur:

İşte benim kodudur. Ve ayrıca bunu bilgisayarımdan çalıştırdığımda iyi çalışıyor. Bu karakterleri yalnızca sunucuda alıyorum.

cevap

1

Muhtemelen response karakter kümesini UTF-8'e elle dönüştürmeniz gerekecektir. Bunu iconv veya iconv-lite modüllerini kullanarak yapabilirsiniz. cheerio'un kendisi, charset dönüşümlerini otomatik olarak işlemez.

İlgili konular