Semasa proses penghantaran data, adalah mudah untuk menghadapi masalah watak bercelaru. Dalam proses menggunakan nodejs untuk merangkak data, cheerio sering digunakan untuk penghuraian dokumen. Walau bagaimanapun, kadangkala kandungan yang dihuraikan menggunakan cheerio akan bercelaru. Masalah ini mungkin mengganggu ramai pembangun menggunakan cheerio. Artikel ini akan memperkenalkan sebab dan penyelesaian untuk watak bercelaru dalam cheerio, dan membantu pembangun menyelesaikan masalah dengan cepat.
Semasa proses menghurai dokumen, jika pengekodan dokumen tidak konsisten dengan pengekodan yang dihuraikan oleh cheerio, masalah kacau bilau watak akan berlaku. Sebab khusus adalah seperti berikut:
(1) Masalah pengekodan fail sumber. Jika fail sumber menggunakan kaedah pengekodan bukan UTF-8, seperti GBK, GBK2312, dsb., dan cheerio menggunakan pengekodan UTF-8 semasa menghuraikan, bahasa Cina yang dihuraikan akan menjadi kacau.
(2) Masalah penghantaran rangkaian. Jika dokumen yang dihuraikan dihantar melalui rangkaian, kaedah pengekodan penghantaran rangkaian mungkin tidak konsisten dengan kaedah pengekodan penghuraian cheerio, menyebabkan kandungan yang dihuraikan menjadi bercelaru.
Kaedah untuk menyelesaikan masalah kod kacau cheerio sebenarnya sangat mudah. Kaedah khusus adalah seperti berikut:
(1) Tentukan kaedah pengekodan penghuraian. Apabila dokumen menggunakan pengekodan bukan UTF-8, anda boleh menentukan pengekodan yang sepadan apabila menghuraikan dengan cheerio, seperti GBK, GBK2312, dsb. Contoh kod adalah seperti berikut:
const cheerio = require('cheerio'); const iconv = require('iconv-lite'); const request = require('request'); const url = 'https://www.example.com'; // 需要解析的页面 URL const options = { url: url, encoding: null // 设置编码为 null }; request(options, function (error, response, buffer) { const html = iconv.decode(buffer, 'gbk'); // 将 buffer 转成 GBK 编码的字符串 const $ = cheerio.load(html.toString()); // 使用 cheerio 加载 HTML 字符串 console.log($('title').text()); // 输出 title 标签的内容 });
(2) Semak kaedah pengekodan penghantaran rangkaian. Isu pengekodan semasa menghantar dokumen harus dielakkan apabila boleh. Anda boleh menggunakan alat pembangun penyemak imbas anda untuk melihat pengekodan yang digunakan untuk penghantaran rangkaian, dan kemudian memadankan pengekodan dengan pengekodan yang digunakan apabila cheerio menghuraikannya.
Ringkasnya, cara untuk menyelesaikan masalah cheerio bercelaru adalah dengan memberi perhatian kepada kaedah pengekodan dokumen dan kaedah pengekodan penghantaran rangkaian untuk memadankan kaedah pengekodan apabila cheerio menghuraikan. Hanya dengan memberi perhatian kepada isu-isu ini pembangun boleh mengelak cheerio menghuraikan aksara bercelaru.
Atas ialah kandungan terperinci kod nodejs cheerio bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!