પૃષ્ઠ પ્રોક્સી દ્વારા લોડ થાય છે, પરંતુ ઉચ્ચારણ ચિહ્નવાળા અક્ષરો વિકૃત થઈને પાછા આવે છે. પ્રોક્સી બદલતા પહેલાં, પ્રતિસાદના બાઇટ્સ 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 સાથે પાર્સ કરવાથી મૂળ લખાણ પાછું આવતું નથી. બાઇટ્સ અને પ્રતિસાદ મેટાડેટા પર પાછા જાઓ. જે પ્રાપ્ત થયું તેની પણ સરખામણી કરો: પ્રોક્સીનું લોગિન પૃષ્ઠ કે નકાર એ વિનંતી કરેલા પૃષ્ઠ કરતાં સાવ અલગ દસ્તાવેજ હોઈ શકે, તેમાં ડિકોડિંગ નિષ્ફળતા નહીં.

સંબંધિત લેખો