पृष्ठ प्रॉक्सी से लोड होता है, लेकिन उच्चारण-चिह्न वाले अक्षर विकृत होकर लौटते हैं। प्रॉक्सी बदलने से पहले वह पहला स्थान खोजें जहाँ प्रतिक्रिया के बाइट 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 से पार्स करने पर मूल पाठ वापस नहीं आता। बाइट और प्रतिक्रिया के मेटाडेटा पर लौटें। जो प्राप्त हुआ उसकी भी तुलना करें: प्रॉक्सी का लॉगिन पृष्ठ या अस्वीकृति अनुरोधित पृष्ठ से बिल्कुल भिन्न दस्तावेज़ हो सकता है, न कि उसमें डिकोडिंग विफलता।

संबंधित लेख