Node.js cheerio 奇怪的字符(西里尔字母)
Node.js cheerio weird characters (cyrillic letters)
我在尝试解析页面时收到奇怪的字符。
这是我的代码:
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());
});
});
我的结果是:
<span>Ст��атегии</span>
<span>Стратег��и</span>
<span>Стра��егии</span>
<span>Стратегии</span>
<span>Стратегии</span>
...
最奇怪的是,来自同一个 url,有时我会得到这些奇怪的字符,有时我不会。而且当我从我的电脑上 运行 时,它工作正常。我只在服务器上得到这个字符。
您可能需要手动将 response
的字符集转换为 UTF-8。您可以使用 iconv
或 iconv-lite
模块来执行此操作。 cheerio
本身不会自动处理字符集转换。
我在尝试解析页面时收到奇怪的字符。
这是我的代码:
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());
});
});
我的结果是:
<span>Ст��атегии</span>
<span>Стратег��и</span>
<span>Стра��егии</span>
<span>Стратегии</span>
<span>Стратегии</span>
...
最奇怪的是,来自同一个 url,有时我会得到这些奇怪的字符,有时我不会。而且当我从我的电脑上 运行 时,它工作正常。我只在服务器上得到这个字符。
您可能需要手动将 response
的字符集转换为 UTF-8。您可以使用 iconv
或 iconv-lite
模块来执行此操作。 cheerio
本身不会自动处理字符集转换。