प्रॉक्सी डाउनलोडनंतर jsoup मधील अक्षर एन्कोडिंग त्रुटी
HTML पार्सिंगमध्ये प्रतिसादाची एन्कोडिंग माहिती टिकवून प्रॉक्सीद्वारे लोड केलेल्या पृष्ठावरील विकृत अक्षरे निदान करा.
पृष्ठ प्रॉक्सीद्वारे लोड होते, पण उच्चारचिन्हांसह अक्षरे विकृत होऊन परत येतात. प्रॉक्सी बदलण्यापूर्वी प्रतिसादाचे बाइट Java String होणारे पहिले स्थान शोधा. स्पष्ट charset नसलेले InputStreamReader तो निर्णय jsoup दस्तऐवज पाहण्यापूर्वीच घेऊ शकते.
जेव्हा jsoup फेच हाताळते, पार्सिंगपर्यंत प्रतिसाद एकत्र ठेवा:
Connection.Response response = Jsoup
.connect("https://www.example.com/catalog")
.proxy("proxy.example", 8080)
.execute();
Document page = response.parse();प्रतिसाद API Content-Type वरून मिळवलेली charset माहिती उघड करते. सर्व्हरची घोषणा चुकीची आहे हे सिद्ध झाल्यास ते स्पष्ट charset ओव्हरराइडही स्वीकारते. प्रॉक्सी पत्ता स्वतः सांगत नाही की दस्तऐवज कोणते अक्षर एन्कोडिंग वापरतो. प्रॉक्सी खात्याशिवाय अनुमत सार्वजनिक पृष्ठाची तुलना हवी असल्यास उदाहरणातील HTTP होस्ट आणि पोर्ट HTTP प्रॉक्सी सूचीमधील उमेदवाराने बदला, त्या एन्कोडिंग तपासण्या तशाच ठेवून.
दुसरा HTTP क्लायंट InputStream देत असल्यास jsoupचे स्ट्रीम पार्स ओव्हरलोड charset नाव आणि आधार URI स्वीकारते. शून्य charset त्याची नोंदवलेली ओळख आणि फॉलबॅक वर्तनास परवानगी देते; ज्ञात व योग्य HTTP charset जाणीवपूर्वक पुढे द्यावे. आधार URI सापेक्ष दुव्यांना संदर्भ देते.
बाइट चुकीच्या पद्धतीने डिकोड झाल्यावर, परिणामी String दुसऱ्या charset ने पार्स केल्यास मूळ मजकूर परत मिळत नाही. बाइट आणि प्रतिसादाच्या मेटाडेटाकडे परत जा. जे मिळाले त्याचीही तुलना करा: प्रॉक्सीचे लॉगिन पृष्ठ किंवा नकार विनंती केलेल्या पृष्ठापेक्षा पूर्णपणे वेगळा दस्तऐवज असू शकतो, त्यातील डिकोडिंग अपयश नव्हे.