Crawler4J เก่งในการรวบรวมข้อมูลหน้าด้วยผลลัพธ์ที่ได้รับการเข้ารหัส อย่างไรก็ตาม Crawler4J ไม่ได้ระบุการเข้ารหัสสำหรับการตอบสนองและวิเคราะห์มันลงในรหัสที่อ่านไม่ออกซึ่งน่ารำคาญมาก หลังจากค้นหาความเจ็บปวดฉันได้ค้นพบโดยบังเอิญว่าโพสต์บล็อกที่ยาวนานสามารถแก้ปัญหาและปรับเปลี่ยนการเข้ารหัส ContentData ใน Page.Load () แก้ไขแล้ว
การคัดลอกรหัสมีดังนี้:
โหลดโมฆะสาธารณะ (เอนทิตี httpentity) โยนข้อยกเว้น {
contentType = null;
ประเภทส่วนหัว = entity.getContentType ();
if (type! = null) {
contentType = type.getValue ();
-
contentEncoding = null;
การเข้ารหัสส่วนหัว = entity.getContentEncoding ();
if (encoding! = null) {
contentEncoding = encoding.getValue ();
-
charset charset = contentType.getOrdefault (เอนทิตี) .getCharset ();
if (charset! = null) {
contentCharset = charset.displayName ();
}อื่น{
ContentCharset = "UTF-8";
-
// ซอร์สโค้ด
// contentData = entityUtils.tobyteArray (เอนทิตี);
// แก้ไขรหัส
contentData = entityUtils.toString (เอนทิตี, charset.forName ("gbk")). getBytes ();
-