صفحہ پراکسی سے لوڈ ہوتا ہے، لیکن لہجے والے حروف بگڑے ہوئے واپس آتے ہیں۔ پراکسی بدلنے سے پہلے پہلی جگہ تلاش کریں جہاں جواب کے بائٹس 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 قبول کرتا ہے۔ null charset اس کی دستاویزی شناخت اور فال بیک رویے کی اجازت دیتا ہے؛ معلوم اور درست HTTP charset کو جان بوجھ کر منتقل کرنا چاہیے۔ بنیادی URI نسبتی لنکس کے لیے سیاق فراہم کرتا ہے۔

ایک بار بائٹس غلط ڈیکوڈ ہو جائیں تو حاصل String کو کسی دوسرے charset سے پارس کرنے پر اصل متن واپس نہیں آتا۔ بائٹس اور جواب کے میٹا ڈیٹا کی طرف واپس جائیں۔ جو موصول ہوا اس کا بھی موازنہ کریں: پراکسی کا لاگ ان صفحہ یا انکار درخواست کردہ صفحے سے بالکل مختلف دستاویز ہو سکتا ہے، نہ کہ اس میں ڈیکوڈنگ کی ناکامی۔

متعلقہ مضامین