ප්රොක්සි හරහා බාගැනීමෙන් පසු 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 හි stream parse overload එක charset නාමයක් සහ මූලික URI එකක් පිළිගනී. null charset එහි ලේඛනගත හඳුනාගැනීම සහ ආපසු යාමේ හැසිරීමට ඉඩ දෙයි; දන්නා සහ නිවැරදි HTTP charset එකක් හිතාමතාම ඉදිරියට ගෙන යා යුතුය. මූලික URI සාපේක්ෂ සබැඳි සඳහා සන්දර්භය සපයයි.
බයිට වැරදි ලෙස විකේතනය වූ පසු, ලැබෙන String වෙනත් charset එකකින් විග්රහ කිරීමෙන් මුල් පෙළ ආපසු නොලැබේ. බයිට සහ ප්රතිචාරයේ මෙටාදත්ත වෙත ආපසු යන්න. ලැබුණු දෙය ද සංසන්දනය කරන්න: ප්රොක්සියේ පිවිසුම් පිටුව හෝ ප්රතික්ෂේපය ඉල්ලූ පිටුවට වඩා සම්පූර්ණයෙන්ම වෙනස් ලේඛනයක් විය හැක, එහි විකේතන අසාර්ථකත්වයක් නොවේ.